gpt4 book ai didi

python - python unittest subTest 和skipTest 之间的交互是否定义了?

转载 作者:行者123 更新时间:2023-12-03 14:40:09 30 4
gpt4 key购买 nike

我还没有找到关于 Python unittest 功能之间交互的明确答案 subTestskipTest .

比如测试一下,好像是在调用skipTest的时候内subTest上下文(Python 3.4 中的新功能),仅跳过当前子测试。允许围绕 subTest 的任何循环继续使用其他值。

from unittest import TestCase

class NumbersTest(TestCase):
def test_even(self):
"""
Test that numbers between 0 and 5 are all even.
"""
for i in range(0, 6):
with self.subTest(i=i):
if i==3:
self.skipTest("Skip 3.")
self.assertEqual( i%2, 0 )

输出显示测试在跳过 3 后继续使用值 4 和 5。
test_even (TestUnitSubTest.NumbersTest) ... skipped 'Skip 3.'

======================================================================
FAIL: test_even (TestUnitSubTest.NumbersTest) (i=1)
----------------------------------------------------------------------
Traceback (most recent call last):
File "~/TestUnitSubTest.py", line 14, in test_even
self.assertEqual( i%2, 0 )
AssertionError: 1 != 0

======================================================================
FAIL: test_even (TestUnitSubTest.NumbersTest) (i=5)
----------------------------------------------------------------------
Traceback (most recent call last):
File "~/TestUnitSubTest.py", line 14, in test_even
self.assertEqual( i%2, 0 )
AssertionError: 1 != 0

----------------------------------------------------------------------
Ran 1 test in 0.002s

FAILED (failures=2, skipped=1)

我没有在 Python 文档中找到明确的答案。它举例说明,如果断言在 subTest 内失败上下文,然后进一步 subTest将执行。但我没有发现任何关于跳过测试的信息。

谁能指出我错过的段落?

最佳答案

我本身没有答案,但四年后,遇到了与这个问题相同的问题。
看起来 .subTest() 和 .skipTest() 交互(以及子测试的一般日志记录)还没有完全解决。 https://bugs.python.org/issue25894https://bugs.python.org/issue35327是与这个确切问题相关的两个开放错误,自 2015 年左右开始开放。
到 2020 年,看起来两者都还开放,所以这还没有解决。

关于python - python unittest subTest 和skipTest 之间的交互是否定义了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35597998/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com