如何解决unittest 说 continue 语句没有被测试?
Python 2.7.18 with Coverage 5.3(客户端要求)
真的被这个问题难住了。在开始重构之前尝试让单元测试报告 100%。
在下面的代码示例中(当然大大简化了),Coverage 表示未检查 continue 语句!
class Test7(unittest.TestCase):
def test_7(self):
test7()
def test7():
for i in range(0,3):
if i > 0:
if i > 1:
print 'loop1 iteration = ' + str(i)
continue
if i == 0:
print 'blah'
如果我在 continue 上方放入打印语句,它会被检查并且没有问题! 'pass'虽然不一样...... :(
我尝试了许多其他迭代,但无法弄清楚。
它必须是基本的东西吗?
谢谢!
解决方法
continue 行可能被 CPython peephole 优化器删除了,所以无法覆盖。
建议重构以避免该问题:
if i > 0:
if i > 1:
print 'loop1 iteration = ' + str(i)
elif i == 0:
print 'blah'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。