Todas as respostas presumem que você deseja iniciar os casos de teste na linha de comando. Mas se você deseja executar os testes de forma programática, tente o seguinte:import nose ; nose.runmodule() # aka nose.run(defaultTest=__name__)
MarkHu 3/09/15
1
IMHO, a sugestão simples 'py.test --junitxml results.xml test.py' responde melhor à pergunta. 'yum install pytest' para instalar o py.test. Em seguida, você pode executar qualquer script python unittest e obter JUnit resultados XML
gaoithe
1
@gaoithe que responde à parte de jenkins, mas não cumpre o requisito de usar o módulo mais unido incorporado. Nesse projeto, era um requisito dado.
Erikbwork
@ erikb85 Quando digo "execute qualquer script python mais unittest", quero dizer um script que usa o módulo unittest.
Você precisaria usar o nose2.plugins.junitxmlplugin. Você pode configurar nose2com um arquivo de configuração como faria normalmente ou com a --pluginopção de linha de comando.
+1 na sugestão simples 'py.test --junitxml results.xml test.py'. 'yum install pytest' para instalar o py.test. Em seguida, você pode executar qualquer script python mais unittest e obter resultados xml do jUnit.
Gaoithe
1
Se você deseja usar o unittest-xml-reporting e se beneficiar do recurso Test Discovery , você pode colocar unittest.main(module=None, testRunner=xmlrunner.XMLTestRunner(output='test-reports')).
Rosberg Linhares
@RosbergLinhares Por que você precisa module=Noneusar o Test Discovery? Funciona exatamente como descrito na resposta unittest.main(testRunner=xmlrunner.XMLTestRunner(output='test-reports')).
Acm
@RosbergLinhares, durante a descoberta de teste, os módulos são importados, mas não executados. Então, como alguma dessas soluções deve funcionar com a descoberta? Eu apenas tentei, nada disso funciona. Ou eu estou esquecendo de alguma coisa?
Konstantin
20
Eu usaria o nariz em segundo lugar. O relatório XML básico agora está embutido. Basta usar a opção de linha de comando --with-xunit e ela produzirá um arquivo nosetests.xml. Por exemplo:
nosetests --with-xunit
Em seguida, adicione uma ação de publicação "Publicar resultado do teste JUnit" e preencha o campo "XMLs do relatório de teste" com nosetests.xml (assumindo que você executou os testes nos $ WORKSPACE).
Ao usar o buildout que usamos collective.xmltestreportpara produzir saída XML no estilo JUnit, talvez seja o código-fonte ou o próprio módulo possa ser útil .
import nose ; nose.runmodule() # aka nose.run(defaultTest=__name__)
Respostas:
testes de amostra:
tests.py:
JUnit com pytest
execute os testes com:
results.xml:
JUnit com nariz
execute os testes com:
nosetests.xml:
Unidade com nariz2
Você precisaria usar o
nose2.plugins.junitxml
plugin. Você pode configurarnose2
com um arquivo de configuração como faria normalmente ou com a--plugin
opção de linha de comando.execute os testes com:
nose2-junit.xml:
JUnit com unittest-xml-reporting
Anexe o seguinte a
tests.py
execute os testes com:
test-reports / TEST-SimpleTest-20131001140629.xml:
fonte
unittest.main(module=None, testRunner=xmlrunner.XMLTestRunner(output='test-reports'))
.module=None
usar o Test Discovery? Funciona exatamente como descrito na respostaunittest.main(testRunner=xmlrunner.XMLTestRunner(output='test-reports'))
.Eu usaria o nariz em segundo lugar. O relatório XML básico agora está embutido. Basta usar a opção de linha de comando --with-xunit e ela produzirá um arquivo nosetests.xml. Por exemplo:
Em seguida, adicione uma ação de publicação "Publicar resultado do teste JUnit" e preencha o campo "XMLs do relatório de teste" com nosetests.xml (assumindo que você executou os testes nos $ WORKSPACE).
fonte
Você pode instalar o pacote unittest-xml-reporting para adicionar um executor de teste que gere XML ao interno
unittest
.Usamos pytest , que possui saída XML embutida (é uma opção de linha de comando).
De qualquer maneira, a execução dos testes de unidade pode ser feita executando um comando shell.
fonte
Eu usei narizes. Existem complementos para gerar o XML para Jenkins
fonte
Ao usar o buildout que usamos
collective.xmltestreport
para produzir saída XML no estilo JUnit, talvez seja o código-fonte ou o próprio módulo possa ser útil .fonte
Execute isso como shell a partir de jenkins, você pode obter o relatório em pytest_unit.xml como artefato.
fonte