¿Hay alguna manera de ejecutar ng test
un solo archivo en lugar de todo el conjunto de pruebas? Idealmente, me gustaría obtener el ciclo de retroalimentación más rápido posible cuando estoy editando un archivo, pero karma
ejecuta todo el conjunto en cada guardado, lo que es un poco lento cuando se crea un conjunto de pruebas lo suficientemente grande.
Esto es diferente de Cómo ejecutar solo una especificación de prueba con angular-cli en que esa pregunta se trata de ejecutar una especificación individual. Se trata de ejecutar un archivo individual. La solución involucra la misma característica de especificaciones de Jasmine, pero la naturaleza de la pregunta es ligeramente diferente.
angular
jasmine
angular-cli
karma-runner
Elliot Larson
fuente
fuente
Respuestas:
Descubrí que Jasmine te permite prefijar
describe
yit
métodos con unf
(¿para foco?). Entonces,fdescribe
yfit
. Si usa cualquiera de estos, el karma solo ejecutará las pruebas relevantes. Entonces, para enfocar el archivo actual, puede tomar el nivel superiordescribe
y cambiarlo afdescribe
. Funciona para mis propósitos.fuente
Vale la pena mencionar que puede deshabilitar una prueba en particular sin comentar
xdescribe
yxit
Y como alguien ya dijo si quieres concentrarte en alguna prueba, entonces
fdescribe
yfit
fuente
Esto se puede lograr en estos días a través de la
include
opción. https://angular.io/cli/test#optionsEs una coincidencia global, así que como ejemplo:
No puedo encontrarlo en las notas de la versión 8.1.0 , pero @Swoox menciona a continuación que esta es una característica después de la versión cli
8.1.0
. Gracias por resolver eso.fuente
Descubrí que
ng test
tiene una opción adicional--include
que puede usar para poder ejecutar la prueba para un solo archivo, o para un directorio en particular, o para un montón de archivos:ng cli docs
fuente
Puede ir
src/test.ts
y cambiar la siguiente línea:const context = require.context('./', true, /\.spec\.ts$/);
a
const context = require.context('./', true, /**yourcomponent.component**\.spec\.ts$/);
fuente
Extensión de código de Visual Studio
La forma más fácil es usar la extensión vscode-test-explorer junto con su hijo angular-karma-test-explorer y jasmine-test-adapter , obtendrá una lista de las pruebas actuales para ejecutar una por una si lo desea:
Esta es la misma respuesta que di en esta pregunta , hay algunos detalles más allí.
fuente
Usando ng test --main file.spec.ts
fuente
Debe ir
src/test.ts
y cambiar el siguiente código de número de línea 18:a
fuente
Funciona si especifica su archivo de especificaciones como parámetro.
Por ejemplo:
ng test foo.spec.ts
Espero que esto ayude.
fuente