# ...
def testOverSequence(self):
for elem in sequence:
self.assertEqual(elem, 3, "{} is not equal to 3".format(elem)) # for instance
# Something on these lines
class MyTectClass(unittest.TestCase):
def _some_test(**kwargs):
.......
def TestOverSequence(self):
for elem in sequence:
with self.subTest(elem=elem)
self._some_test(elem=elem)
你所说的,就是所谓的参数测试。向测试中添加一些注释性参数,测试系统根据参数重复测试。在您的示例中,它将是一个值列表,测试系统将对每个值重复测试。在
看起来python在它的测试系统中仍然没有这样的功能:https://bugs.python.org/issue7897
但我在这里找到了一些自助解决方案https://gist.github.com/mfazekas/1710455
我还发现,单独的测试框架pytest对参数测试https://docs.pytest.org/en/latest/example/parametrize.html有一定的支持
如果您想单独断言,那么为什么首先使用循环呢? {1>或者单独声明一条消息,但都没有成功。在
感谢所有试图提供帮助的人,但是在再次查看文档之后,我找到了我所需要的unittest.subTest() context manager。在
我一开始就应该看到的
谢谢你从我的肩膀后面看,哈哈(你知道,有时候要找到答案,你需要有人来帮你)
相关问题 更多 >
编程相关推荐