如果特定的测试失败,则无法进行pytest测试

时间:2014-12-05 14:49:54

标签: python jenkins pytest

所以我有一个目录,里面装满了一堆用python编写的测试,并用正确的语法确保它们按顺序运行。

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

我想到的解决方案是设置一个环境变量,以防它失败,然后在以下测试中检查该环境变量。问题是用Jenkins运行它,没有检测到环境变量集,如果它存在,我宁愿选择原生解决方案。

我拥有的是:

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

2 个答案:

答案 0 :(得分:0)

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

pytest -x ...

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

  

运行pytest可能会导致六个不同的退出代码:

     

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

     

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

     

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

     

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

     

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

     

退出代码5:未收集测试

答案 1 :(得分:0)

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

def test_check_connection(self):
    ...
    if Failed:
        global failed_conn_check = True
    else:
        global failed_conn_check = False

然后在测试结束时:

    ...
    if failed_conn_check:
        raise SomeException
    ...