2024-03-29 14:57:49 发布
网友
当我使用./manage.py test运行测试时,通过print发送到标准输出的任何内容都不会显示。当测试失败时,我看到每个失败的测试都有一个“stdout”块,所以我猜Django会捕获它(但在测试通过时不会显示它)。
./manage.py test
print
使用所有相关包(Django==1.11.2、django-nose==1.4.5和nose==1.3.7)的当前版本,在运行测试时添加--nocapture标志就足够了。如此简单
Django==1.11.2
django-nose==1.4.5
nose==1.3.7
--nocapture
./manage.py test --nocapture
就够了。
当然你有
TEST_RUNNER = "django_nose.NoseTestSuiteRunner"
在你的settings.py
settings.py
是的,这个问题是由NoseTestSuiteRunner引起的。添加-- -s很棘手,不是最佳解决方案。 尝试在settings.py中添加以下行:
NoseTestSuiteRunner
-- -s
NOSE_ARGS = ['--nocapture', '--nologcapture',]
这解决了我的问题。
选中了TEST_RUNNER在settings.py中,它使用了一个调用Nose的项目特定的运行器。Nose有-s选项来阻止它捕获stdout,但是如果我运行:
TEST_RUNNER
-s
stdout
./manage.py test -s
manage.py首先捕获它并抛出一个“no such option”错误。关于manage.py的帮助没有提到这一点,但是我发现如果运行:
manage.py
./manage.py test -- -s
它忽略了-s并让我在自定义跑步者一侧捕获它,将它毫无问题地传递给Nose。
使用所有相关包(
Django==1.11.2
、django-nose==1.4.5
和nose==1.3.7
)的当前版本,在运行测试时添加--nocapture
标志就足够了。如此简单就够了。
当然你有
在你的
settings.py
是的,这个问题是由
NoseTestSuiteRunner
引起的。添加-- -s
很棘手,不是最佳解决方案。 尝试在settings.py
中添加以下行:这解决了我的问题。
选中了
TEST_RUNNER
在settings.py
中,它使用了一个调用Nose的项目特定的运行器。Nose有-s
选项来阻止它捕获stdout
,但是如果我运行:./manage.py test -s
manage.py
首先捕获它并抛出一个“no such option”错误。关于manage.py
的帮助没有提到这一点,但是我发现如果运行:./manage.py test -- -s
它忽略了
-s
并让我在自定义跑步者一侧捕获它,将它毫无问题地传递给Nose。相关问题 更多 >
编程相关推荐