为了账号安全,请及时绑定邮箱和手机立即绑定

忽略依赖于其他测试成功的单元测试

忽略依赖于其他测试成功的单元测试

慕标琳琳 2021-03-12 10:10:08
在编写单元测试时,经常会发生某些测试“依赖”其他测试的情况。例如,假设我有一个测试可以检查我可以实例化一个类。我还有其他测试,要立即进行实例化,然后再测试其他功能。还让我们假设该类由于任何原因而无法实例化。这导致大量测试产生错误。这很糟糕,因为我看不出问题出在哪里。我需要的是一种在我的实例化测试失败的情况下跳过这些测试的方法。有没有办法用Python的unittest模块来做到这一点?如果这不是我应该做的事情,那么我应该怎么做才能查看发生故障时真正的问题所在?
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

实际上,与我上面的评论相反,我认为您需要的是一种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


查看完整回答
反对 回复 2021-03-27
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

我没有建议如何避免运行“依赖”测试,但是我有建议您如何更好地使用它们:使依赖关系更加明显,从而使以后分析测试失败更加容易。一种简单的可能性如下:

  • 在测试代码中,将用于较低级别方面的测试放在文件的顶部,而将更具依赖性的测试放在底部。然后,当几个测试失败时,请首先查看最接近文件顶部的测试。


查看完整回答
反对 回复 2021-03-27
  • 2 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号