考虑到此功能的测试覆盖范围:
1 def func_to_test(param):
2
3 if param == 'foo':
4 return 'bar'
5
6 return param
这两个单元测试:
def test_given_param_is_foo_it_returns_bar(self):
result = func_to_test('foo')
self.assertEquals(result, 'bar')
def test_given_param_is_not_foo_it_returns_the_param(self):
result = func_to_test('something else')
self.assertEquals(result, 'something else')
IDEA中的coverage视图显示了被测试函数的所有行,但在第3行(带有if
的行)中,它显示了以下内容:
Line was hit
Line 2 didn't jump to line 4,6
在查看了多个这样的情况之后,我的印象是覆盖工具希望执行if
块,然后代码执行继续在块下面。但是,如果if
块包含必须命中的return
语句,则这是不可能的。你知道吗
我是否曲解了消息,或者是否有任何其他我必须配置才能正确检测到的内容?你知道吗
在我的coverage.rc
中,我有branch = on
。但是仅仅禁用它将导致可到达的分支不能被检测为“未命中”。你知道吗
我看不到同样的结果。当我运行它时,我得到100%的语句和分支。也许你的代码有些不同?你知道吗
以下是我的测试运行:
相关问题 更多 >
编程相关推荐