我目前正在运行一些单元测试,这些单元测试可能需要很长时间才能失败或无限期运行。在成功的测试运行中,它们总是会在一定时间内完成。
是否可以创建一个 pytest 单元测试,如果它没有在一定时间内完成,它将失败?
您可以安装 pytest-timeout 插件,然后在几秒钟内将您的测试功能标记为超时。
@pytest.mark.timeout(300)
def test_foo():
pass
在https://pypi.python.org/pypi/pytest-timeout查看插件下载和使用说明
可以使用 Bash 功能:
EXIT_CODE=0
TIME_LIMIT=60
timeout $TIME_LIMIT pytest ... || EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
echo "Your error message to log"
...
exit $EXIT_CODE
fi