如果先前的测试结果为失败,是否可以跳过测试?在下面的代码中,如果test_1为失败,我想跳过test_2

import unittest

class MyTest(unittest.TestCase):
    def test_1(self):
        assert False



    def test_2(self):
        check_test_result_test_1 = "" # how
        if check_test_result == "Fail":
            self.skipTest("skip as one is fail")

if __name__ == '__main__':
    unittest.main()

推荐答案

如果一个测试完全依赖于另一个测试的成功来运行,则应该将该测试作为同一测试的一部分.您可以使用TestCase.subTest方法来注释测试的不同阶段:

class MyTest(unittest.TestCase):
    def test_phases(self):
        with self.subTest('Phase 1'):
            self.assertTrue(False)
        with self.subTest('Phase 2'):
            self.assertTrue(True)

这会产生更具描述性的错误消息,如下所示:

======================================================================

FAIL: test_phases (__main__.MyTest) [Phase 1]
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./prog.py", line 6, in test_phases
AssertionError: False is not true

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (failures=1)

演示:https://ideone.com/mSXl3O

Python相关问答推荐

七段显示不完整

一切似乎都可以自己工作,但当我把它放在一起时,它会抛出RegexMatch错误

正在设置字段.需要为假,因为错误列表索引必须是整数或切片,而不是字符串

Tokenizer Docker:无法为Tokenizer构建轮子,这是安装pyproject.toml项目所需的

预期LP_c_Short实例而不是_ctyles.PyCStructType

回归回溯-2D数组中的单词搜索

Django序列化器没有验证或保存数据

每个组每第n行就有Pandas

如何使用PyTest根据self 模拟具有副作用的属性

有没有方法可以修复删除了换码字符的无效的SON记录?

在Arrow上迭代的快速方法.Julia中包含3000万行和25列的表

数字梯度的意外值

如何自动抓取以下CSV

Pytest两个具有无限循环和await命令的Deliverc函数

使用@ guardlasses. guardlass和注释的Python继承

Pandas:将多级列名改为一级

如何设置视频语言时上传到YouTube与Python API客户端

Python中的变量每次增加超过1

合并与拼接并举

Python—压缩叶 map html作为邮箱附件并通过sendgrid发送