Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IDEA显示未覆盖的分支可以';无法访问(python)_Python_Intellij Idea_Code Coverage - Fatal编程技术网

IDEA显示未覆盖的分支可以';无法访问(python)

IDEA显示未覆盖的分支可以';无法访问(python),python,intellij-idea,code-coverage,Python,Intellij Idea,Code Coverage,考虑到此功能的测试覆盖范围: 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, 'b

考虑到此功能的测试覆盖范围:

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
语句,则这是不可能的

我是否误解了该消息,或者是否需要配置其他任何东西才能正确检测到该消息


在my
coverage.rc
中,我有
branch=on
。但是仅仅禁用它就会导致可访问的分支未被检测为“未命中”。

我看不到相同的结果。当我运行它时,我得到100%的语句和分支。也许你的代码有些不同

以下是我的测试运行:

$ cat tryit.py
def func_to_test(param):

    if param == 'foo':
        return 'bar'

    return param


import unittest

class TestIt(unittest.TestCase):
    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')

$ coverage run --branch --source=. -m unittest tryit
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s

OK

$ coverage report -m
Name       Stmts   Miss Branch BrPart  Cover   Missing
------------------------------------------------------
tryit.py      12      0      2      0   100%

$