如果Python unittest中的setUp抛出异常则停止运行测试

8 投票
1 回答
3659 浏览
提问于 2025-04-17 04:23

我有一个测试类:

class mytest(unittest.TestCase):
    def setUp(self):
        os.mkdir(...)
        ...

    def tearDown(self):
        shutil.rmtree(...)

    def test_one(self):
        ...

    def test_two(self):
        ...

在运行 test_onesetUp 方法时,如果 mkdir 执行后出现了问题,它仍然会继续尝试运行 test_twosetUp 方法。这时候我会在 mkdir 上遇到错误,因为 rmtree 没有执行。

有没有办法让 Python 的 unittest 在 setUp 失败时停止当前的测试?我不想在普通的测试失败时停止。

1 个回答

13

在 setUp 方法中添加一个失败的调用。

def setUp(self):
    try:
        somethingThatMightFail()
    except:
        self.fail()

撰写回答