pytest超时是一个插件py.test一定超时后,将终止测试 在这样做时,你会得到当时运行的所有线程的堆栈转储。这是非常有用的,当如运行在持续集成(CI)服务器测试。
用法
通过安装:
PIP安装pytest超时
然后启用该插件,无论是在命令行:
py.test -p超时
或更方便地从测试模块或conftest.py内:
pytest_plugins ='超时'
您可以使用--timeout参数,该参数设置以秒为单位的超时更改超时。
如何使用
这个插件工作在两种方式之一。如果系统支持的SIGALRM信号警报将预定的测试开始时和当它完成取消。如果在测试过程中报警到期信号处理程序将使用pytest.fail()来已经倾倒运行到标准错误的任何其他线程的堆栈后中断测试。
如果该系统不支持SIGALRM或使用了--nosigalrm选项,那么计时器线程将被替代使用。再次,如果它过期之前将转储所有线程的堆栈使用os._exit终止整个py.test过程之前标准错误此计时器不会被取消(1)。
该SIGALRM方法的缺点是信号所使用的测试框架。如果这个信号在测试中使用的代码,你将需要使用--nosigalrm选项。计时器线程的限制却是创建一个线程执行的每一个测试,一个超时后的整个过程停止并没有进一步的测试执行的事实的额外开销。
什么是新在此版本中:
- 在添加了PYTEST_TIMEOUT环境变量指定超时的一种方式(关闭问题#2)
- 在更灵活的标示参数解析:你现在可以使用位置参数指定的方法
- 在插件现在是默认启用。就不再需要在配置文件或命令行上简单地使一个标记将工作指定超时= 0。
什么版本0.2是新的:
- 在添加标记使用@pytest修改超时延迟.timeout(N)的语法,感谢Laurant布拉克的初始代码。
- 在允许超时标志使用方法关键字参数选择超时方法。
- 在重命名--nosigalrm选项--method =线程面向未来支持eventlet和GEVENT。感谢罗尼Pfannschmidt的提示。
- 在加入超时和timeout_method项目的配置文件,这样就可以启用和使用INI文件来配置插件。由于霍尔格Krekel和罗尼Pfannschmidt的提示。
- 在测试(固定)的蟒蛇2.6,2.7和3.2。
要求:
- 在Python中
- 在py.test
评论没有发现