python-unittest - 如果另一个先前的测试方法在 Python 中使用 unittest 失败,如何跳过一个测试方法?

标签 python-unittest python-decorators

我有一个带有两种不同方法的单元测试测试用例。如果第一个方法失败,我希望跳过我的第二个方法。

我正在使用装饰器 @unittest.skipIf 但我找不到合适的条件。

class myTest(unittest.TestCase):
    def test_1(self):
        self.assertEqual(1,2)

    @unittest.skipIf(????,'test_2 was skipped because test_1 failed')
    def test_2(self):
        pass

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

最佳答案

skipIf在类声明时求值,要知道test_1的结果还为时过早.单元测试是独立的,你暗示这些测试不是独立的,所以一种选择是将测试 2 的逻辑放在测试 1 中;如果测试的早期部分失败,它将不会执行:

class myTest(unittest.TestCase):
    def test_1(self):
        self.assertEqual(1,2)
        # move test 2 logic here
        self.assertTrue(something)

或者,根据测试按字母顺序排序的事实,您可以使用 failfast选项,这将导致测试运行器在第一次测试失败后立即停止。显然这种方法也将跳过 test_2 之后的任何后续测试。以及。
if __name__ == '__main__':
    unittest.main(failfast=True)

关于python-unittest - 如果另一个先前的测试方法在 Python 中使用 unittest 失败,如何跳过一个测试方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43932596/

相关文章:

python - 列表项的assertEqual自定义比较

python-3.x - Python 测试对实例化为另一个类中的变量的类方法的调用

Python单元测试: make AssertionError an error instead of a failure

在类的所有方法中将参数转换为相同标准的 Pythonic 方式

python - 在类和方法上组合 @mock.patch 时的顺序

python - 如何使用 requests_mock 对文件上传进行单元测试?

python - 有条件内存?

python - 如何装饰从文件导入的所有函数?

python - 签名更 retrofit 饰器 : properly documenting additional argument

python - 透明地链接(组合)装饰器