Concluí meu primeiro projeto adequado em Python e agora minha tarefa é escrever testes para ele.
Como essa é a primeira vez que eu faço um projeto, é a primeira vez que eu escrevia testes para ele.
A questão é: como eu começo? Eu não tenho absolutamente nenhuma idéia. Alguém pode me indicar alguma documentação / tutorial / link / livro que eu possa usar para começar a escrever testes (e acho que o teste de unidade em particular)
Qualquer conselho será bem-vindo neste tópico.
python
unit-testing
testing
user225312
fonte
fonte
Respostas:
Se você é novo no uso de unittests, a abordagem mais simples de aprender geralmente é a melhor. Nessa base, recomendo usar o módulo padrão
py.test
em vez do padrãounittest
.Considere estes dois exemplos, que fazem o mesmo:
Exemplo 1 (unittest):
Exemplo 2 (pytest):
Supondo que os dois arquivos sejam nomeados
test_unittesting.py
, como executamos os testes?Exemplo 1 (unittest):
Exemplo 2 (pytest):
fonte
unit-test
ainda está incluído na biblioteca padrão, sepy.test
enose
fornece a mesma funcionalidade com uma interface muito mais simples? É apenas para fornecer compatibilidade com versões anteriores, ou queunittest
têm algumas vantagens quepy.test
enosetest
não pode fornecer?unittest
pacote padrão ainda é bom o suficiente. É padrão, o que significa que é garantido que funcione bem. Por fim, quem usa seu código não precisa instalar pacotes extras.O livro grátis do Python Dive Into Python possui um capítulo sobre teste de unidade que você pode achar útil.
Se você seguir práticas modernas, provavelmente deverá escrever os testes enquanto estiver escrevendo seu projeto, e não espere até que seu projeto esteja quase pronto.
Um pouco tarde agora, mas agora você sabe da próxima vez. :)
fonte
Existem, na minha opinião, três ótimas estruturas de teste de python que são boas de verificar.
O unittest - módulo é padrão com todas as distribuições python do
nariz - pode executar testes unittest e possui menos clichê.
pytest - também executa testes mais unittest, tem menos clichê, melhores relatórios, muitos recursos extras interessantes
Para obter uma boa comparação de tudo isso, leia as introduções de cada um em http://pythontesting.net/start-here .
Também há artigos estendidos sobre acessórios e muito mais.
fonte
Os documentos para unittest seria um bom lugar para começar.
Além disso, é um pouco tarde agora, mas, no futuro, considere escrever testes de unidade antes ou durante o próprio projeto. Dessa forma, você pode usá-los para testar à medida que avança e (em teoria) você pode usá-los como testes de regressão, para verificar se as alterações no seu código não quebraram nenhum código existente. Isso lhe daria todos os benefícios de escrever casos de teste :)
fonte
unittest
. Depois que eu pegar o jeito, vou usá-lo mais para o desenvolvimento, além de aumentar o número de casos de teste para cada unidade.unittest vem com a biblioteca padrão, mas eu recomendo que você nosetests .
" nariz se estende mais unido para facilitar os testes. "
Eu também recomendo você pylint
" analisa o código fonte do Python procurando bugs e sinais de baixa qualidade. "
fonte
Como outros já responderam, é tarde para escrever testes de unidade, mas não é tarde demais. A questão é se seu código é testável ou não. Na verdade, não é fácil colocar o código existente em teste, há até um livro sobre isso: Trabalhando efetivamente com o código legado (consulte os principais pontos ou o PDF precursor ).
Agora, escrever ou não os testes de unidade é sua decisão. Você só precisa estar ciente de que poderia ser uma tarefa tediosa. Você pode resolver isso para aprender o teste de unidade ou considerar primeiro escrever testes de aceitação (de ponta a ponta) e começar a escrever testes de unidade quando alterar o código ou adicionar novos recursos ao projeto.
fonte
nosetests é uma solução brilhante para testes de unidade em python. Ele suporta casos de teste e documentos com base mais unittest, e o inicia com apenas um arquivo de configuração simples.
fonte
nose
enose2
está no modo maintanance. É melhor começar compy.test
como ele tem muito mais apoio