Eu tenho um monte de especificações com falha de uma mudança arquitetônica bastante grande. Eu gostaria de trabalhar para corrigi-los um por um, marcando cada um com 'foco'.
O jasmine.js possui um recurso como este? Jurei que li em um ponto que sim, mas não o vejo nos documentos.
Respostas:
Você pode executar uma única especificação usando o URL da especificação
Agora você pode executar apenas toda a especificação por este URL
http://localhost:8888?spec=MySpec
e fazer o primeiro teste comhttp://localhost:8888?spec=MySpec+function+1
fonte
describe("MySpec", ...)
e não estedescribe("MySpec blah blah", ...)
:? Parece estar fazendo uma correspondência de substring.http://localhost:8888?spec=function+1
deve funcionar também (muitas vezes não é necessário especificar MySpec)fdescribe
,fit
Ao usar o Karma, você pode ativar apenas um teste com
fit
oufdescribe
(iit
eddescribe
no Jasmine antes da 2.1).Isso é executado apenas
Spec1
:Isso é executado apenas
testA
:fonte
fdescribe
efit
: github.com/jasmine/jasmine/commit/…iit
eddescribe
são adições ao Karma, não ao Jasmine.xit
efit
entrarit
é difícil de ler e propenso a erros?No núcleo desde 2.1 com
fit
efdescribe
.fonte
Para quem se deparar com isso, uma abordagem melhor, que você pode configurar a partir do próprio código, é usar este plugin: https://github.com/davemo/jasmine-only
Ele permite que você defina a exclusividade das especificações diretamente no código como este:
Houve uma longa discussão para adicionar isso ao núcleo do Jasmine, consulte: https://github.com/pivotal/jasmine/pull/309
Se você estiver usando Jasmine via Karma / Testacular, já deverá ter acesso
ddescribe()
eiit()
fonte
fdescribe
efit
- "f" significa "focado". Veja também jasmine.github.io/2.1/focused_specs.htmlExistem algumas maneiras de fazer isso.
Há: recurso Jasmine's Focused Specs (2.2): http://jasmine.github.io/2.2/focused_specs.html
As especificações de foco farão com que sejam as únicas especificações executadas. Qualquer especificação declarada com ajuste é focada.
No entanto, eu realmente não gosto da ideia de editar meus testes (fit e fdescribe) para executá-los seletivamente. Prefiro usar um corredor de teste como o karma, que pode filtrar os testes usando uma expressão regular.
Aqui está um exemplo usando o grunhido .
Se você estiver usando gulp (que é o meu executor de tarefas favorito), poderá passar argumentos para o gulp-karma executor de com yargs e padrões de correspondência definindo a configuração do karma.
Mais ou menos assim:
Veja minha essência: https://gist.github.com/rimian/0f9b88266a0f63696f21
Então agora eu posso executar uma única especificação usando a descrição:
Minha execução de teste local: (Executado 1 de 14 (ignorado 13))
Consulte também: https://github.com/karma-runner/karma-jasmine
fonte
Você pode criar todas as suas especificações antecipadamente, mas desativá-las com
xdescribe
exit
até estar pronto para testá-las.fonte
Com o Jasmine independente (2.0.0), no spec_runner.htlm, eu poderia clicar em uma especificação específica e focar nela. Eu deveria ter notado esse recurso anteriormente.
fonte
Não é exatamente o que você pediu, mas a adição
iit
testará apenas essa especificação específica e ignorará todas as outras no arquivo,ddescribe
funciona da mesma maneira. Para que você possa se concentrar em uma especificação específica usandoiit
ouddescribe
fonte
Esta é a resposta mais simplificada com um exemplo prático. Mesmo no fdescribe, você pode executar alguns blocos usando-o. f significa foco.
Também em um bloco sem descrição, que é apenas descrição, é possível selecionar apenas blocos específicos, marcando-os como adequados.
Por favor, execute o código abaixo e observe o log do console, leia também os comentários no código. Leia o artigo deste autor também ajuda. https://davidtang.io/2016/01/03/controlling-which-tests-run-in-jasmine.html
fonte