Python跳过Unittests

2024-04-26 13:59:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有Python2.7Selenium单元测试,它们需要按照特定的顺序运行,如果一个类中有一个测试失败,那么在该类中运行剩余的测试是没有意义的。我知道这很糟糕,测试应该独立运行

在下面的代码中,我尝试使用test\u a将bar=False设置为跳过test\u f。这对我不起作用,我在想原因

from unittest import TestCase, main as unittest_main, skipIf


class TestSimpleFoo(TestCase):
    foo = 'bar'
    bar = True

    def setUp(self):
        pass

    def test_a(self):
        self.assertEqual(self.__class__.foo, 'bar')
        self.__class__.foo = 'can'
        # can i skip test_f ???
        self.__class__.bar = False

    @skipIf(bar == False, "skipping")
    def test_f(self):
        self.assertEqual(self.__class__.foo, 'can')


if __name__ == '__main__':
    unittest_main()

Tags: testselffalsefoomaindefseleniumbar
1条回答
网友
1楼 · 发布于 2024-04-26 13:59:20

你的意思是,当test_atest_f之前运行时,这不起作用

这是正常的行为,因为条件是在构造decorator时测试的,而decorator是在执行test_a(注册单元测试类时)之前测试的

如果以前的测试被破坏了,您可能想停用测试,但这不是正确的方法

相关问题 更多 >