使用@ unittest.skip如果运行时跳过测试取决于变量

时间:2019-11-14 07:47:25

标签: python selenium selenium-webdriver python-unittest

我想跳过特定的测试,具体取决于以下代码中的Class变量。

但是它将得到“ TypeError:类型'NoneType'的参数不可迭代”。

名称已在其他位置设置。 (TestClassA.name ='xxx')

也许这不是一个好方法,但是我不知道如何修改。

请给我一些建议,谢谢。

class TestClassA(unittest.TestCase):
    name = None

    def test_a(self):
        //do something

    @unittest.skipIf('xxx' in name, "reason")
    def test_b(self):
        //do something

1 个答案:

答案 0 :(得分:1)

好吧,您可以通过解决

class TestClassA:
    name = ''

但是它很可能无法解决潜在的问题->测试的收集是在执行之前进行的,因此在收集测试之后设置类变量不会导致测试被跳过...

也许您可以从某个配置文件中将name导入模块的作用域中,而不是在类中进行设置?

例如

from someconfig.module import NAME

class TestClassA:

    def test_a(self):
        //do something

    @unittest.skipIf('xxx' in NAME, "reason")
    def test_b(self):
        //do something