使用nosetests时出现超时
我正在设置我的nosetests环境,但似乎无法正确设置超时。我希望每个通过nose发现的测试都有一个
我尝试了以下方法:
nosetests --processes=-1 --process-timeout=2
这个方法运行得很好,但我注意到以下几点:
- 并行测试对于一些简单的测试用例来说反而花费了更长的时间
- 当一个测试超时(因此失败)时,nose并没有反馈这个信息
有没有人知道我该如何让这个超时功能正常工作?我更希望它在不进行并行测试的情况下工作,但只要能收到测试超时的反馈,这也不是问题。
1 个回答
11
我不知道这是否能让你的生活更轻松,但在 nose.tools
中有类似的功能,它会在超时后失败,而且你不需要进行并行测试:
from nose.tools import timed
@timed(2)
def test_a():
sleep(3)
如果手动添加属性有点麻烦,你可以通过脚本或插件自动给模块中的所有测试加上装饰器,但我个人更喜欢清晰明了,而不是神秘的做法。
通过查看 Lib/site-packages/nose/plugins/multiprocess.py
的源代码,似乎你使用的 process-timeout
选项是专门用来管理那些可能导致测试无法完成的“挂起”子进程的。