Existe uma maneira de executar ng test
um único arquivo em vez de para todo o conjunto de testes? Idealmente, eu gostaria de obter o loop de feedback mais rápido possível ao editar um arquivo, mas karma
executa todo o conjunto em cada salvamento, o que é um pouco lento quando você cria um conjunto de testes suficientemente grande.
Isso é diferente de Como executar apenas uma especificação de teste com angular-cli , pois a questão é sobre a execução de uma especificação individual. Trata-se de executar um arquivo individual. A solução envolve o mesmo recurso de especificação do Jasmine, mas a natureza da pergunta é um pouco diferente.
angular
jasmine
angular-cli
karma-runner
Elliot Larson
fonte
fonte
Respostas:
Descobri que o Jasmine permite prefixar
describe
eit
métodos com umf
(para foco?). Entãofdescribe
efit
. Se você usar um desses, o karma executará apenas os testes relevantes. Portanto, para focar o arquivo atual, você pode simplesmente pegar o nível superiordescribe
e alterá-lo parafdescribe
. Funciona para meus propósitos.fonte
Vale ressaltar que você pode desativar um teste específico sem comentar
xdescribe
exit
E como alguém já disse, se você quiser se concentrar em algum teste, então
fdescribe
efit
fonte
Isso pode ser alcançado nos dias de hoje através da
include
opção. https://angular.io/cli/test#optionsÉ uma correspondência global, como um exemplo:
Não consigo encontrá-lo nas notas de versão 8.1.0 , mas o @Swoox menciona abaixo que este é um recurso após a versão CLI
8.1.0
. Obrigado por descobrir isso.fonte
Eu descobri que
ng test
tem uma opção adicional--include
que você pode usar para poder executar o teste de um único arquivo ou de um diretório específico ou de vários arquivos:ng cli docs
fonte
Você pode acessar
src/test.ts
e alterar a seguinte linha:const context = require.context('./', true, /\.spec\.ts$/);
para
const context = require.context('./', true, /**yourcomponent.component**\.spec\.ts$/);
fonte
Extensão de código do Visual Studio
A maneira mais fácil é usar a extensão vscode-test-explorer junto com seu filho angular-karma-test-explorer e jasmim-test-adapter , você receberá uma lista dos testes atuais para executar um por um, se desejar:
Esta é a mesma resposta que eu dei a esta pergunta , há mais alguns detalhes lá.
fonte
Usando ng test --main file.spec.ts
fonte
Você deve ir
src/test.ts
e pode alterar o seguinte código de número de linha 18:para
fonte
Funciona se você especificar seu arquivo de especificação como parâmetro.
Por exemplo:
ng test foo.spec.ts
Espero que isto ajude.
fonte