【发布时间】:2017-10-02 18:57:22
【问题描述】:
我正在尝试建立一个新的 django 项目,并且我已将 settings.py 中的 TEST_RUNNER 配置为 django_nose.NoseTestSuiteRunner。
我选择了这个测试运行器,因为它似乎是我能找到的唯一一个具有以下功能的运行器:
- 编写 xunit xml 测试报告
- 捕获日志记录/标准输出并仅显示失败的测试。
但是我听说鼻子没有维护,我很难找到合适的替代品。据我所知,标准测试运行程序不会捕获日志记录,也不会写入 xunit(希望被证明是错误的!)
我像这样运行测试:
python -m coverage run manage.py test --noinput
python -m coverage report --include="app/*" --show-missing --fail-under=100
python -m coverage xml --include="app/*" -o ./reports/coverage.xml
在 settings.py 中有这个:
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
还有这个 setup.cfg:
[nosetests]
verbosity=0
with-xunit=1
xunit-file=./reports/xunit.xml
logging-clear-handlers=1
最后两行是我在其他测试运行程序中找不到的真正有趣的部分。鼻子捕获日志并清除其他日志处理程序(例如,转储到标准输出的处理程序),因此测试运行输出更清晰(您只会看到失败测试的日志记录)。
在其他非 django 项目中,我通常使用nose2,但 django-nose2 项目似乎已有 6 年历史并且缺乏 python3 支持??
请让我知道哪个测试运行器是“推荐”的(例如,最受欢迎的),支持 django,谢谢。
【问题讨论】:
标签: django django-testing