unittest subtest()支持和子测试设备

pytest-subtests的Python项目详细描述


unittestsubTest()支持和subtestsfixture。

PyPI versionhttps://img.shields.io/conda/vn/conda-forge/pytest-subtests.svgPython versionsSee Build Status on Travis CISee Build Status on Azurehttps://img.shields.io/badge/code%20style-black-000000.svg

这个pytest插件是用Cookiecutter@hackebrotcookiecutter-pytest-plugin模板生成的。

功能

  • 添加对TestCase.subTest的支持。
  • 新的subtestsfixture,为纯pytest测试提供类似的功能。

要求

  • Python>;=3.4。
  • pytest>;=4.4。

安装

您可以通过PyPI中的pip安装pytest-subtests

$ pip install pytest-subtests

用法

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 =================

贡献

我们非常欢迎您的贡献。测试可以使用tox

tox -e py37,linting

许可证

“pytest子测试”是根据MIT许可证的条款发布的免费开源软件

问题

如果您遇到任何问题,请file an issue连同详细说明。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java导入可能未定义的包   java正则表达式在尝试使alpha和非零无效时无效   java如何将一个包中的类导入另一个包中的另一个类?   java通过摄像头识别对象并做出反应   加密java。lang.IllegalAccessError:试图访问类javax。加密。来自javax类的密码$Transform。加密。密码   java将日期作为varchar传递给SQL Server中的存储过程   java将谷歌地图显示为libgdx游戏中的片段   java使用正则表达式区分字符串中的斜杠   java将用户鼠标移动到某一点   Java将“this”与非静态方法结合使用   java为什么textfield总是返回null?   未在流中调用java put方法。地图   Java Apache POI Excel文件在数据库对象中的映射是否具有类似HeaderColumn策略的功能?   java如何在JDK中手动更新时区?   java如果ArrayList<String>是Map中的一个键,如何从中检索值?   java扩展2类问题   java如何比较两个哈希映射   java新的Android版本将与旧的WebView文件选择器方法兼容   java如何在特定屏幕后关闭特定活动?   java中数字的自动拆箱应该使用数字。xxxValue()而不是强制转换为XXX。xxxValue()?