Tengo un montón de especificaciones fallidas de un cambio arquitectónico bastante grande. Me gustaría trabajar en solucionarlos uno por uno etiquetando cada uno con 'foco'.
¿Tiene jazmín.js una característica como esta? Juré que leí en un punto que sí, pero no lo veo en los documentos.
Respuestas:
Puede ejecutar una sola especificación utilizando la url para la especificación
Ahora puede ejecutar solo la especificación completa con esta url
http://localhost:8888?spec=MySpec
y la primera prueba conhttp://localhost:8888?spec=MySpec+function+1
fuente
describe("MySpec", ...)
y no estedescribe("MySpec blah blah", ...)
:? Parece estar haciendo una coincidencia de subcadena.http://localhost:8888?spec=function+1
debería funcionar también (a menudo no es necesario especificar MySpec)fdescribe
,fit
Al usar Karma, puede habilitar solo una prueba con
fit
ofdescribe
(iit
yddescribe
en Jasmine antes de 2.1).Esto solo funciona
Spec1
:Esto solo funciona
testA
:fuente
fdescribe
yfit
: github.com/jasmine/jasmine/commit/…iit
yddescribe
son adiciones de Karma, no de Jasmine.xit
yfit
enit
son difíciles de leer y propenso a errores?En núcleo desde 2.1 con
fit
yfdescribe
.fuente
Para cualquiera que se encuentre con esto, un mejor enfoque, que puede configurar desde el propio código, es utilizar este complemento: https://github.com/davemo/jasmine-only
Le permite establecer la exclusividad de especificaciones en el código de esta manera:
Ha habido una larga discusión para agregar esto al núcleo de Jasmine, ver: https://github.com/pivotal/jasmine/pull/309
Si está utilizando Jasmine a través de Karma / Testacular, ya debería tener acceso
ddescribe()
yiit()
fuente
fdescribe
yfit
- "f" significa "enfocado". Ver también jasmine.github.io/2.1/focused_specs.htmlHay algunas formas de hacerlo.
Hay: Especificaciones enfocadas de la característica de Jasmine (2.2): http://jasmine.github.io/2.2/focused_specs.html
Las especificaciones de enfoque harán que sean las únicas especificaciones que se ejecutan. Cualquier especificación declarada con ajuste está enfocada.
Sin embargo, no me gusta la idea de editar mis pruebas (ajustar y describir) para ejecutarlas selectivamente. Prefiero usar un corredor de prueba como el karma que puede filtrar las pruebas usando una expresión regular.
Aquí hay un ejemplo usando gruñido .
Si está usando gulp (que es mi corredor de tareas favorito), puede pasar args en gulp-karma con hilos y patrones de coincidencia configurando la configuración de karma.
Un poco como esto:
Vea mi esencia: https://gist.github.com/rimian/0f9b88266a0f63696f21
Entonces, ahora puedo ejecutar una sola especificación usando la descripción:
Mi ejecución de prueba local: (Ejecutado 1 de 14 (saltado 13))
Ver también: https://github.com/karma-runner/karma-jasmine
fuente
Puede crear todas sus especificaciones por adelantado, pero deshabilitarlas con
xdescribe
yxit
hasta que esté listo para probarlas.fuente
Con Jasmine independiente (2.0.0), en spec_runner.htlm, podría hacer clic en una especificación específica y centrarme en esa especificación. Debería haber notado esta característica antes.
fuente
No es exactamente lo que ha pedido, pero agregar
iit
solo probará esa especificación particular e ignorará todas las demás en el archivo,ddescribe
funciona de la misma manera. Para que pueda centrarse en una especificación particular usandoiit
oddescribe
fuente
Esta es la respuesta más simplificada con un ejemplo práctico. Incluso en fdescribe puede ejecutar pocos bloques usando. f significa foco.
También en un bloque sin descripción que solo se describe, puede seleccionar solo bloques específicos al marcarlos como adecuados.
Ejecute el siguiente código y observe el registro de la consola, también lea los comentarios en el código. Lea el artículo de este autor que también ayuda. https://davidtang.io/2016/01/03/controlling-which-tests-run-in-jasmine.html
fuente