我正在尝试设置一个新的django项目,并将TEST_RUNNER在settings.py中配置为django_nose.NoseTestSuiteRunner。
我选择了这个测试运行程序,因为它似乎是我能找到的唯一具有以下特性的测试运行程序:
然而,我听说鼻子没有保养,我很难找到合适的替代品。标准的测试运行程序不会捕获日志,也不会按照我的判断编写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最后两行是我在其他测试运行程序中似乎找不到的真正多汁的部分。鼻子捕获日志并清除其他日志处理程序(例如,转储到stdout上的处理程序),因此测试运行的输出要干净得多(您只看到失败测试的日志记录)。
在其他非django项目中,我通常使用nose2,但是django-nose2项目似乎已有6年历史,缺乏python3支持??
请让我知道哪个测试运行是“推荐的”一个(例如,最流行的)与django支持,谢谢。
发布于 2019-02-06 07:50:45
我在unittest-xml-reporting方面取得了成功。
TEST_RUNNER = 'xmlrunner.extra.djangotestrunner.XMLTestRunner'https://github.com/xmlrunner/unittest-xml-reporting#django-support
可以使用TEST_OUTPUT_DIR设置配置输出目录。
发布于 2019-06-19 12:55:13
您仍然可以使用鼻跑:
INSTALLED_APPS += ['django_nose']
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
NOSE_ARGS = [
'--with-xunit',
'--xunit-file=nosetests.xml',
'--with-coverage',
'--cover-erase',
'--cover-xml',
'--cover-xml-file=nosecover.xml',
]发布于 2017-10-02 20:42:53
因此,pytest产生了一些非常好的测试输出。我在TEST_RUNNER中取消了settings.py,并将测试脚本更改为:
python -m coverage run -m pytest --junitxml=./reports/junit.xml
python -m coverage report --include="app/*" --show-missing --fail-under=100
python -m coverage xml --include="app/*" -o ./reports/coverage.xml这是可行的,并捕获了所有日志输出(鼻子有一点错误,让一两个日志语句通过,非常奇怪的行为)。
唯一的原因是我是一个django新手,所以我不知道不使用manage.py test测试django是否有任何不良的副作用。非常感谢您的指导,谢谢!
https://stackoverflow.com/questions/46531947
复制相似问题