unittest subTest()支持以及subtests插件
项目描述
unittest subTest()支持以及subtests插件。
此pytest插件是由Cookiecutter和@hackebrot的cookiecutter-pytest-plugin模板生成的。
特性
添加了对TestCase.subTest的支持。
新的subtests插件,为纯pytest测试提供类似的功能。
安装
您可以通过pip从PyPI安装pytest-subtests。
$ pip install pytest-subtests
用法
unittest 子测试() 示例
import unittest
class T(unittest.TestCase):
def test_foo(self):
for i in range(5):
with self.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 =================
子测试 配置示例
def test(subtests):
for i in range(5):
with subtests.test(msg="custom message", i=i):
assert i % 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 =================
贡献
欢迎贡献。可以使用 tox 运行测试
tox -e py37
许可
在 MIT 许可协议下分发,“pytest-subtests” 是免费和开源软件
问题
如果您遇到任何问题,请提交问题,并附带详细描述。