开发者社区> 问答> 正文

忽略或期望测试失败

你想在单元测试中忽略或标记某些测试会按照预期运行失败。

展开
收起
哦哦喔 2020-04-17 17:32:53 933 0
2 条回答
写回答
取消 提交回答
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!

    kip() 装饰器能被用来忽略某个你不想运行的测试。 skipIf() 和 skipUnless() 对于你只想在某个特定平台或Python版本或其他依赖成立时才运行测试的时候非常有用。 使用 @expected 的失败装饰器来标记那些确定会失败的测试,并且对这些测试你不想让测试框架打印更多信息。

    忽略方法的装饰器还可以被用来装饰整个测试类,比如:

    @unittest.skipUnless(platform.system() == 'Darwin', 'Mac specific tests') class DarwinTests(unittest.TestCase): pass

    2020-04-17 18:03:00
    赞同 展开评论 打赏
  • unittest 模块有装饰器可用来控制对指定测试方法的处理,例如:
    
    import unittest
    import os
    import platform
    
    class Tests(unittest.TestCase):
        def test_0(self):
            self.assertTrue(True)
    
        @unittest.skip('skipped test')
        def test_1(self):
            self.fail('should have failed!')
    
        @unittest.skipIf(os.name=='posix', 'Not supported on Unix')
        def test_2(self):
            import winreg
    
        @unittest.skipUnless(platform.system() == 'Darwin', 'Mac specific test')
        def test_3(self):
            self.assertTrue(True)
    
        @unittest.expectedFailure
        def test_4(self):
            self.assertEqual(2+2, 5)
    
    if __name__ == '__main__':
        unittest.main()
    如果你在Mac上运行这段代码,你会得到如下输出:
    
    bash % python3 testsample.py -v
    test_0 (__main__.Tests) ... ok
    test_1 (__main__.Tests) ... skipped 'skipped test'
    test_2 (__main__.Tests) ... skipped 'Not supported on Unix'
    test_3 (__main__.Tests) ... ok
    test_4 (__main__.Tests) ... expected failure
    
    ----------------------------------------------------------------------
    Ran 5 tests in 0.002s
    
    OK (skipped=2, expected failures=1)
    
    2020-04-17 17:33:03
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
移动互联网测试到质量的转变 立即下载
给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
F2etest — 多浏览器兼容性测试整体解决方案 立即下载