如何在python中有条件地跳过测试

我希望在满足条件时跳过一些测试函数,例如:

@skip_unless(condition)
def test_method(self):
    ...

在这里,如果条件评估为true,我希望将测试方法报告为跳过.我能用鼻子做一些努力,但我想看看是否有可能在鼻子2.

Related question描述了在nose2中跳过所有测试的方法.

解决方法:

通用解决方案:

你可以使用unittest跳过条件,它可以用于nosetests,nose2和pytest.有两种选择:

class TestTheTest(unittest.TestCase):
    @unittest.skipIf(condition, reason)
    def test_that_runs_when_condition_false(self):
        assert 1 == 1

    @unittest.skipUnless(condition, reason)
    def test_that_runs_when_condition_true(self):
        assert 1 == 1

Pytest

使用pytest框架:

@pytest.mark.skipif(condition, reason)
def test_that_runs_when_condition_false():
    assert 1 == 1
上一篇:使用nose进行Python单元测试:进行顺序测试


下一篇:python – Nose:默认情况下如何跳过测试?