【问题标题】:Stop running tests if setUp raises an exception in Python unittest如果 setUp 在 Python unittest 中引发异常,则停止运行测试
【发布时间】:2011-10-15 17:31:34
【问题描述】:

我有这个测试类:

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

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

    def test_one(self):
        ...

    def test_two(self):
        ...

如果在运行setUptest_onemkdir 运行后出现故障,它仍会尝试运行setUptest_two。此时我会在mkdir 上收到一个错误,因为rmtree 没有运行。

如果setUp 失败,有什么方法可以告诉 Python unittest 停止运行当前测试?我希望在常规测试失败时停下来。

【问题讨论】:

  • 这很 hacky,但您可以在 setUp 方法中捕获异常并相应地失败

标签: python testing


【解决方案1】:

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

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

【讨论】:

  • 这只会中止正在设置的每个单独的测试。我正在为一个设置的情况寻找一种方法来中止所有其他测试和设置。我认为 OP 也希望这样做,但问题存在一些歧义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 1970-01-01
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多