Os testes de unidade em Python

votos
17

O Python tem uma estrutura de teste de unidade compatível com o estilo xUnit padrão de estrutura de teste? Se assim for, o que é, onde está, e é bom?

Publicado 31/08/2008 em 06:07
fonte usuário
Em outras línguas...                            


9 respostas

votos
23

Python tem várias estruturas de teste, incluindo unittest, docteste nose. O mais xUnit-como é unittest, que está documentada no Python.org.

Respondeu 31/08/2008 em 06:09
fonte usuário

votos
9

Eu recomendo nariz .

É o mais Pythonic dos quadros de teste de unidade. O corredor de teste é executado ambos doctests e UnitTests, então você está livre para usar qualquer estilo de teste que você gosta.

Respondeu 01/09/2008 em 09:30
fonte usuário

votos
3

testoob que é conjunto bastante completo de test.Also xUnit-ie, e tem uma boa opção de relatórios

Respondeu 31/08/2008 em 06:20
fonte usuário

votos
2

Considere py.test . Não é exatamente análogo ao NUnit, mas muito bom, com características interessantes, incluindo teste de auto-descoberta e um "Assista os testes e código -. Quando algo muda executar novamente os testes que falharam última vez Assim que todos os testes passam, mude para executar todos sempre que os testes somethings alterações ". opção.

Respondeu 31/08/2008 em 12:53
fonte usuário

votos
2

@ Greg: PyUnit está incluído na biblioteca padrão como unittest

Respondeu 31/08/2008 em 06:37
fonte usuário

votos
1

Eu recomendo Nose.

Após a instalação razoável simples, você só tem que executar "nosetests" na sua pasta de projeto e nariz vai encontrar todos os seus testes e executá-los. Eu também gosto da coleção de plugins (cobertura, GAE, etc.) e a capacidade de se chamar Nose diretamente de dentro meus scripts Python.

Respondeu 21/08/2009 em 05:41
fonte usuário

votos
0

nariz parece ser a melhor combinação de flexibilidade e conveniência. Corre-se UnitTests, doctests, cobertura (com uma extensão) e testes py.test-like de um quadro e faz isso admiravelmente. Ele tem popularidade suficiente para que ele teve alguma integração IDE feito, bem como para Komodo Edit e eu não ficaria surpreso de vê-lo em outros lugares também.

Eu gosto dele por um motivo forte: Eu quase sempre doctest antes de escrever testes mais extensos num outro contexto. Isto porque, para testes básicos, doctests matar dois pássaros com uma pedra. Você começa testes executáveis ​​(embora eles são um pouco desajeitado para escrever bem às vezes), bem como documentação da API e documentação interativa ao mesmo tempo. nariz vai executar estes com a extensão doctest empacotado quando você usar uma opção de linha de comando (--with-doctest).

Digo isto tendo vindo de py.test como o meu ex-favorito. Embora seja grande, os testes de nariz são semelhantes o suficiente para mim que eu não perca, e eu gosto da integração das diversas metodologias de teste sob o mesmo teto, por assim dizer. YMMV, mas eu recomendo dar uma boa olhada no nariz antes de escolher outro. Se você não estiver familiarizado com os testes py.test, você deve olhar para eles também. Eu encontrá-los fantástico, porque eles geralmente são escritos de tal forma que eles podem ser facilmente depurado sem o framework de testes, o que torna um sistema menos complicado envolvido na sessão de depuração. Acho que só inestimável, enquanto eles também são mais fáceis de escrever do que os testes unittest em minha opinião.

Respondeu 03/02/2010 em 20:15
fonte usuário

votos
0

Nunca utilizado xUnit, então não posso dizer se os quadros são bom / mau comparativly, mas aqui é um script que eu escrevi que usa a estrutura unittest (para verificar a API funciona como deveria), eo doctest (para verificar o exemplos que eu dei trabalho)

O meu único problema é verificar algo levanta uma exceção é um pouco complicado (você tem que passá-lo uma função / lambda que levanta a exceção, e não apenas o próprio comando, como o resto do quadro) .. Fora isso, ele faz o que deveria, de forma confiável, e foi incluído na distribuição python padrão por algum tempo.

Respondeu 31/08/2008 em 13:44
fonte usuário

votos
0

Há também PyUnit que pode ser o que você está procurando.

Respondeu 31/08/2008 em 06:35
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more