首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pytest-cov不显示术语或html报告。

Pytest-cov不显示术语或html报告。
EN

Stack Overflow用户
提问于 2022-10-25 22:59:14
回答 1查看 28关注 0票数 0

我正在用python编写单元测试,并试图生成代码覆盖率,但我没有看到术语或HTML报告。

我的Python 组件结构如下所示:

代码语言:javascript
复制
.
|-- README.md
|-- bin
|   |-- do_something.py
|   `-- do_something.sh
|-- junit.xml
|-- lib
|   `-- __init__.py
|-- pytest.ini
|-- requirements-dev.txt
|-- requirements.txt
|-- setup.py
`-- tests
    |-- __init__.py
    |-- env.py
    `-- test_do_something.py

源文件:

代码语言:javascript
复制
class DoSomething:
    def __init__(self, var=""):
        # define some initial variables
        self.var1 = var
        self.var2 = "Done"

    def do_something(self):
        var1 = self.var1 if self.var1 else "nothing"
        res = var1 + self.var2
        return res

def main(args):
    do_something_obj = DoSomething("Something")
    print(do_something_obj.do_something())

if __name__ == "__main__":
    main(sys.argv[1:])

测试类和测试用例:

代码语言:javascript
复制
import bin.do_something as do_something

from bin.do_something import DoSomething


class TestDoSomething(TestCase):

    def setUp(self):
        self.a = "test"
    
    def test_do_something(self):
        do_something_test_obj = DoSomething(self.a)
        self.assertEquals("test Done", do_something_test_obj.do_something())

CONFIGURATIONS:

.coveragerc

代码语言:javascript
复制
[run]
    include =
         bin/*.py,lib/*.py
    omit =
         setup.py,tests/*.py
[report]
    
    exclude_lines =
         if __name__ == .__main__.:

pytest.ini

代码语言:javascript
复制
[pytest]
testpaths = tests

通过执行以下命令执行和传递测试用例

代码语言:javascript
复制
python3 -m py.test --cov='.' --cov-report=xml --cov-report=term --junitxml=junit.xml -o junit_family=xunit2

但是,没有生成任何报告,我可以看到以下输出。

代码语言:javascript
复制
================================================================================= test session starts ==================================================================================
platform linux -- Python 3.6.8, pytest-7.0.1, pluggy-1.0.0
rootdir: /home/my_component, configfile: pytest.ini, testpaths: tests
plugins: cov-4.0.0
collected 5 items

tests/test_do_something.py .....                                                                                                                                               [100%]

============================================================================= 1 passed, 1 warning in 0.09s =============================================================================

ENVIRONMENT:

代码语言:javascript
复制
linux:

CentOS Linux release 7.9.2009 (Core)
5.4.201-1.el7.elrepo.x86_64
x86_64 x86_64 x86_64 GNU/Linux

Python:
Python 3.6.8

pip packages and versions:

astroid (2.11.7)
attrs (22.1.0)
coverage (6.2)
dill (0.3.4)
importlib-metadata (4.8.3)
iniconfig (1.1.1)
isort (5.10.1)
lazy-object-proxy (1.7.1)
mccabe (0.7.0)
packaging (21.3)
pip (9.0.3)
platformdirs (2.4.0)
pluggy (1.0.0)
py (1.11.0)
pylint (2.13.9)
pyparsing (3.0.9)
pytest (7.0.1)
pytest-cov (4.0.0)
setuptools (39.2.0)
tomli (1.2.3)
typed-ast (1.5.4)
typing-extensions (4.1.1)
wrapt (1.14.1)
zipp (3.6.0)

知道为什么我没有看到术语或HTML报告(我还发布了一个单独的-cov-report= HTML选项,但也没有看到HTML)?我是不是遗漏了什么?

注意:我尝试过删除虚拟env并多次重新创建,但是我没有看到不同的结果。

EN

回答 1

Stack Overflow用户

发布于 2022-10-26 10:38:25

我不知道为什么它没有显示报告,但是请记住,您可以在测试运行后创建报告:

代码语言:javascript
复制
python3 -m pytest --cov='.' --junitxml=junit.xml -o junit_family=xunit2
python3 -m coverage report
python3 -m coverage xml
python3 -m coverage html
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74200980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档