Como os testes de unidade individuais podem ser temporariamente desabilitados ao usar o unittest
módulo em Python?
python
python-unittest
coelhudo
fonte
fonte
@unittest.SkipTest
obras e não@unittest.skip
@unittest.skip
também funciona bem.@unittest.skip
não funciona.Você pode usar decoradores para desativar o teste que pode envolver a função e impedir que o teste de unidade googletest ou python execute o testcase.
Resultado:
fonte
A versão mais recente (2.7 - não lançada) suporta teste / desativação de teste dessa forma . Você pode obter este módulo e usá-lo em sua instalação existente do Python. Provavelmente vai funcionar.
Antes disso, eu usei para renomear os testes que eu queria ignorados para
xtest_testname
partirtest_testname
.Aqui está um script elisp rápido para fazer isso. Meu elisp está um pouco enferrujado, então peço desculpas antecipadamente por qualquer problema que ele tenha. Não testado.
fonte
Basta colocar o
@unittest.SkipTest
decorador acima do teste.fonte
unittest.skip
(sem razão) me dá erro em Python 2, mas não em Python 3.Acabei de renomear um método de caso de teste com um sublinhado: test_myfunc torna-se _test_myfunc.
fonte
Os documentos para 2.1 não especificam um método de ignorar ou ignorar.
Normalmente, porém, eu bloqueio comentários quando necessário.
fonte
Focalizando a parte "temporariamente desativada" da pergunta, a melhor resposta depende um pouco do caso de uso. O caso de uso que me trouxe aqui é que estou desenvolvendo um teste em uma função. Nesse processo, escrevo sucessivamente testes e frequentemente uso pontos de interrupção na função para depuração. Se eu apenas executar todos os testes toda vez que o executar, acabarei parando nos pontos de interrupção dos testes que já funcionam. Adicionar "pular" ou colocar o nome do teste ou algo assim não é o que eu quero, porque quando terminar de escrever a função, desejo que todos os testes sejam executados. Se eu usasse "pular", teria que voltar e "desatar".
Para o meu caso de uso, a solução está no executor de teste, não no código de teste. Eu uso pytest . Com o pytest, é fácil especificar um único teste na linha de comando:
(substitua as tampas pelos seus valores).
Eu entendo que essa pergunta era para python-unitest. Eu não uso isso há muito tempo. Eu não ficaria surpreso se tivesse algo semelhante ao pytest. Caso contrário, você pode facilmente mudar para pytest. Você não precisa modificar seu código. Basta instalá-lo e alterar o comando do executor de teste.
Além disso, eu uso o PyCharm Pro. Na página que mostra meu código de teste, há um pequeno ícone ao lado do def para cada teste. Eu posso clicar nesse ícone e executar esse teste individualmente.
fonte