unittest subtest()支持和子测试设备
pytest-subtests的Python项目详细描述
unittestsubTest()支持和subtestsfixture。
这个pytest插件是用Cookiecutter和@hackebrot的cookiecutter-pytest-plugin模板生成的。
功能
- 添加对TestCase.subTest的支持。
- 新的subtestsfixture,为纯pytest测试提供类似的功能。
要求
- Python>;=3.4。
- pytest>;=4.4。
用法
unittest subtest()示例
importunittestclassT(unittest.TestCase):deftest_foo(self):foriinrange(5):withself.subTest("custom message",i=i):self.assertEqual(i%2,0)if__name__=="__main__":unittest.main()
输出
λ pytest .tmp\test-unit-subtest.py ======================== test session starts ======================== ... collected 1 item .tmp\test-unit-subtest.py FF. [100%] ============================= FAILURES ============================== _________________ T.test_foo [custom message] (i=1) _________________ self = <test-unit-subtest.T testMethod=test_foo> def test_foo(self): for i in range(5): with self.subTest('custom message', i=i): > self.assertEqual(i % 2, 0) E AssertionError: 1 != 0 .tmp\test-unit-subtest.py:9: AssertionError _________________ T.test_foo [custom message] (i=3) _________________ self = <test-unit-subtest.T testMethod=test_foo> def test_foo(self): for i in range(5): with self.subTest('custom message', i=i): > self.assertEqual(i % 2, 0) E AssertionError: 1 != 0 .tmp\test-unit-subtest.py:9: AssertionError ================ 2 failed, 1 passed in 0.07 seconds =================
subtestsfixture示例
deftest(subtests):foriinrange(5):withsubtests.test(msg="custom message",i=i):asserti%2==0
输出
λ pytest .tmp\test-subtest.py ======================== test session starts ======================== ... collected 1 item .tmp\test-subtest.py .F.F.. [100%] ============================= FAILURES ============================== ____________________ test [custom message] (i=1) ____________________ def test(subtests): for i in range(5): with subtests.test(msg='custom message', i=i): > assert i % 2 == 0 E assert (1 % 2) == 0 .tmp\test-subtest.py:4: AssertionError ____________________ test [custom message] (i=3) ____________________ def test(subtests): for i in range(5): with subtests.test(msg='custom message', i=i): > assert i % 2 == 0 E assert (3 % 2) == 0 .tmp\test-subtest.py:4: AssertionError ================ 2 failed, 1 passed in 0.07 seconds =================
许可证
“pytest子测试”是根据MIT许可证的条款发布的免费开源软件
问题
如果您遇到任何问题,请file an issue连同详细说明。