Pau*_*ton 5 python unit-testing
在编写单元测试时,经常会发生某些测试“依赖”于其他测试的情况。
例如,假设我有一个测试来检查我是否可以实例化一个类。我还有其他测试可以直接进行并实例化它,然后测试其他功能。
我们还假设该类无法实例化,无论出于何种原因。
这导致大量测试出现错误。这很糟糕,因为我看不出问题到底出在哪里。如果我的实例化测试失败,我需要的是一种跳过这些测试的方法。
有没有办法用 Python 的 unittest 模块做到这一点?
如果这不是我应该做的,我应该怎么做才能看到问题出在哪里?
实际上,与我上面的评论相反,我认为你需要的是一种setUpClass方法。从文档中,
如果在 setUpClass 期间引发异常,则不会运行该类中的测试,并且不会运行tearDownClass。[...] 如果异常是SkipTest异常,则该类将被报告为已被跳过而不是错误。
所以像这样的东西应该可以工作(我相信它可以更整洁):
class TestMyClass(unittest.TestCase):
@classmethod
def setUpClass(cls):
# run the constructor test
if constructor_test_failed:
raise unittest.SkipTest("Constructor failed")
def test_other_stuff(self):
# will get run after setUpClass if it succeeded
Run Code Online (Sandbox Code Playgroud)