continuous integration para javascript

6 views
Skip to first unread message

Oscar Enrique Fraxedas Tormo

unread,
Jan 31, 2017, 8:51:11 AM1/31/17
to Improve your code
Hola a todos,
Estoy tratando de correr unit tests de QUnit en teamcity.

Tengo varios proyectos de VS con aplicaciones en Angular (typescript) y unit tests usando QUnit en distintos proyectos dentro de la misma solucion:

Application{
 - Application.Web
 - Application.UnitTests
}

Las pruebas corren bien localmente con Resharper, pero me da la imprecion que estoy hackeando teamcity para que las corra.
Me encontre https://github.com/mmanela/chutzpah y lo estoy revisando hoy.

Hay alguna manera simple o "correcta" de lograr continuous integration de QUnit en teamcity?

gracias,
Oscar
--
Regards,
Oscar Fraxedas

Karel

unread,
Jan 31, 2017, 10:45:08 AM1/31/17
to improve-...@googlegroups.com
Hola,

   En el proyecto ke recien termine estabamos ejecutando javascript tests in Jasmine usando TeamCity sin problemas.

   TeamCity no debiera ser el problema. En tu build step puedes invocar usando command line script en ultima instancia.

  Ke problema especifico tienes?

  Yo recomendaria tener un setup donde los devs ejecuten el mismo build script local ke se ejecutara en TeamCity. Ese seria el check-in gate: no solo unit tests sino tambien eslint, coverage, etc.

Saludos

Karel

PS. Mi preferencia no es TeamCity. Otros como GoCD, ConcourseCI te permiten definir pipeline as code en una forma mas facil. En este proyecto vamos a usar ConcourseCI y otros estan con GoCD.

Sent from my iPhone
--

---
Has recibido este mensaje porque estás suscrito al grupo "Improve your code" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a improve-your-c...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Oscar Enrique Fraxedas Tormo

unread,
Jan 31, 2017, 11:26:53 AM1/31/17
to improve-...@googlegroups.com
Hola Karel,
Tienes razon, el problema lo puedo reproducir localmente.
Creo que es la manera en que el test runner usa las referencias.
Tengo una prueba en ODataFixture que usa una funcion en SynergizeExplorer.Application.OData declarada en el projecto de Angular.
Cuando ejecuto el test runner tengo lo siguiente:


OData Test:Operator Or [FAIL]
   Test 'OData Test:Operator Or' failed
        Died on test #1 global code@file:///C:/Tests/ClientApps/Application/ODataFixture.js:67:11: Can't find variable: SynergizeExplorer Expected: undefined, Actual: null
in C:\Tests\ClientApps\Application\ODataFixture.js (line 67)


Tengo las referencias en el file con las pruebas a las dependencias.
ejemplo: /// <reference path="../../scripts/typings/qunit/qunit-1.16.d.ts" />
Resharper puede correr las pruebas sin problemas.

Alguna idea?
Como corres en teamcity? Settings, command line??
gracias,
Oscar

PS: Cuando termine con qunit voy a introducir code coverage.

--
Regards,
Oscar Fraxedas

Karel

unread,
Jan 31, 2017, 11:42:25 PM1/31/17
to improve-...@googlegroups.com
Hola Enrique,

  Bueno, 

  En nuestro proyecto, el frontend gulp via npm to run jasmine tests. Y esto es lo que ejecutamos en Team City a traves del command line. El equipo usa Babel and ES6, las referencias en el codigo de pruebas al codigo under test se hacen a traves de "require" o "import".

Yo no soy experto en frontend, lo mejor es tratar de separar el problema con el ejemplo mas simple ke encuentres y ver la causa de esta falla.

 Lo mejor es ejecutar el build fuera del IDE, especialmente antes de hacer push or pull request.

Como estas ejecutando el. build? Tienes referencia en github?

Espero ke resuelvas el problema pronto

Saludos

Sent from my iPhone

Oscar Enrique Fraxedas Tormo

unread,
Feb 1, 2017, 9:18:22 AM2/1/17
to improve-...@googlegroups.com
Hola Karel,
El build local y en TC lo ejecuta Visual Studio. Estoy adicionando otro build step para las unit tests del cliente.

Estoy usando https://github.com/mmanela/chutzpah para correr las pruebas. Encontre una configuracion que "funciona" localmente y tengo que probarla en TC.
El problema era el orden en que adicionaba las referencias.

Gracias por todo,
Oscar

Reply all
Reply to author
Forward
0 new messages