Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果某个特定的pytest测试失败,则使其余pytest测试失败_Python_Jenkins_Pytest - Fatal编程技术网

Python 如果某个特定的pytest测试失败,则使其余pytest测试失败

Python 如果某个特定的pytest测试失败,则使其余pytest测试失败,python,jenkins,pytest,Python,Jenkins,Pytest,所以我有一个目录,里面有一堆用python编写的测试,这些测试具有正确的语法,以确保它们按顺序运行 假设我有一个测试,如果失败,当前调用pytest.exit('exit Message')。问题是生成的XML测试输出只记录它之前的测试。我更希望整个套件都运行,但如果上面提到的测试失败,则报告为失败 我想到的一个解决方案是设置一个环境变量以防失败,然后在下面的测试中检查该环境变量。问题是,使用Jenkins运行它时,不会检测到环境变量集,如果存在,我更喜欢本机解决方案 我得到的是: def te

所以我有一个目录,里面有一堆用python编写的测试,这些测试具有正确的语法,以确保它们按顺序运行

假设我有一个测试,如果失败,当前调用pytest.exit('exit Message')。问题是生成的XML测试输出只记录它之前的测试。我更希望整个套件都运行,但如果上面提到的测试失败,则报告为失败

我想到的一个解决方案是设置一个环境变量以防失败,然后在下面的测试中检查该环境变量。问题是,使用Jenkins运行它时,不会检测到环境变量集,如果存在,我更喜欢本机解决方案

我得到的是:

def test_check_connection(self):
    ...
    if Failed:
        pytest.exit('No connectivity')

我不确定我是否正确理解了你的问题。如果要在第一个失败的测试用例之后停止
pytest
,请使用
-x
选项

pytest -x ...
如果您想运行所有测试并想知道jenkins是否有任何失败,请检查pytest应用程序的退出代码:

运行pytest可能会产生六种不同的退出代码:

退出代码0:已成功收集并通过所有测试

退出代码1:已收集并运行测试,但某些测试失败

退出代码2:测试执行被用户中断

退出代码3:执行测试时发生内部错误

退出代码4:pytest命令行使用错误

退出代码5:未收集任何测试


您可以尝试在测试中设置全局变量,并在以后的测试中引用它,如下所示:

def测试检查连接(自):
...
如果失败:
全局连接检查失败=真
其他:
全局连接检查失败=错误
然后在测试结束时:

。。。
如果连接检查失败:
提出一些例外
...

可能重复的问题您是否解决了此问题?