2011-09-19 21 views
5

Tengo un montón de pruebas de unidad Jasmine, que están ejecutando pruebas unitarias para el código de Javascripts. Están usando el plugin Jasmine-jquery para hacer la manipulación DOM. que utilizan loadFixture, para cargar accesorios de HTMLJavascript JsTestDriver Jasmine & Jasmine-jquery

Probé para automatizar las pruebas de unidad, utilizando JsTestDriver, con JasmineAdapter Pero todas las pruebas implican manipulación del DOM-jquery no están pasando? ¿Hay algo de malo en eso? ¿Hay alguna manera de utilizar Jasmine-jquery con JsTestDriver?

Respuesta

9

Me responderé porque he encontrado una solución para este problema. El problema era que Jasmine-Jquery está usando ajax para cargar el accesorio html, y utiliza una ruta relativa, suponiendo que los dispositivos html están ubicados en algún lugar en relación con el contenedor HTML que ejecuta las pruebas de Jasmine. pero debido a que JsTestDriver está cargando las pruebas dentro de su propio "espacio", entonces tenemos que cambiar la ubicación, donde Jasmine-Jquery busca esas luminarias html, y hacer que JsTestDriver las cargue.

lo que la solución es la siguiente:

JsTestDriver tiene la capacidad de cargar archivos HTML estáticas. en el archivo de configuración, agregue el siguiente:

Servir: - por ejemplo: Servir: - accesorios * .html

ahora se puede acceder a los que tienen el siguiente formato http: localhost: 9876/prueba/fixtures/... dejas que Jasmine-jquery sepa cargar los dispositivos desde esta ubicación.

y listo, las pruebas volverán a funcionar.

+0

tengo mi archivo jar correr en mi carpeta de "jazmín" En el interior hay que tener/jazmín-core/jasmine.js lib. También tengo scripts/test.js y fixtures/text.html. Sí, serví: - fixtures/*. Html, pero sigo recibiendo errores de pánico con 'fixtures' '/ fixtures' y otras variaciones al configurar jasmines fixturePath. ¿Algunas ideas? –

+0

Ah, leí la respuesta de Monica y vi que tenía que poner/probar/en el frente. Eso lo resolvió El ejemplo de localhost me estaba tirando un poco ya que mi servidor no está en el localhost. –

+0

Esto no parece funcionar para JsTestDriver-1.3.4-a.jar, pero lo hace para JsTestDriver-1.3.4.b.jar en Windows. – gotofritz

3

Solo para aclarar un poco el previous posting.

Si en su archivo de configuración jsTestDriver tiene:

servir:

spec/fixtures/*_fixture.html 

Entonces, es necesario para anular su conjunto de pruebas con

jasmine.getFixtures().fixturesPath = '/test/spec/fixtures'; 

que es básicamente /test/ + cualquier camino declaras en la sección servir en tu archivo de configuración jsTestDriver.

0

Acabo de lanzar un kit de herramientas de código abierto que con suerte ayudará a los demás tanto como a mí. Es una composición de muchas herramientas de código abierto que le proporciona una aplicación de red troncal requireks de manera inmediata.

Tiene una solución más elegante para esto utilizando el complemento de texto requirejs y el complemento requirejs handlebars.

Proporciona comandos únicos para ejecutar: servidor web dev, corredor de prueba de un solo navegador jasmine, corredor de prueba de varios exploradores jasmine js-test-driver y concatenación/minificación para JavaScript y CSS. También genera una versión no modificada de su aplicación para la depuración de producción, precompila sus plantillas de manubrio y admite la internacionalización. No se requiere configuración. Simplemente funciona.

http://github.com/davidjnelson/agilejs

Cuestiones relacionadas