我在运行鼻子测试并在 Jenkins 中得到结果时遇到问题。
该作业有一个如下所示的 shell 脚本:
. /var/lib/jenkins/envs/itravel/bin/activate
python api/manage.py syncdb --noinput
DJANGO_SETTINGS_MODULE=ci_settings nosetests --verbosity=0 --processes=1 --with-xunit --xunit-file=nosetests.xml
deactivate
测试套件的一部分是使用 django_nose 运行的。NoseTestSuiteRunner.
运行所有测试,并创建生成的 nosetests.xml 文件,但似乎没有填充测试结果:
<?xml version="1.0" encoding="UTF-8"?><testsuite name="nosetests" tests="0" errors="0" failures="0" skip="0"></testsuite>
我注意到在import Error
失败时,文件充满了一个错误,但除此之外,什么都没有......
知道吗?从测试方面有什么特别的事情要做吗?有什么属性要设置吗?
谢谢。
我所知,--processes
选项与--with-xunit
不兼容。当您要求 nosetests 使用进程插件运行时,测试将在指定数量的子进程中运行。xunit 插件不知道如何将结果收集到 xml 文件中。
只需删除--processes
选项,您应该没问题。
自 2011 年以来,Nose 一直有一个未解决的 GitHub 问题。正如@sti所说,如果您不使用--processes
,一切正常。对于其他人,请考虑改用 Ignas/nose_xunitmp:
pip install nose_xunitmp
nosetests --with-xunitmp
nosetests --xunitmp-file results.xml