25

这根本不是一个技术问题。但是,我找不到应该使用以下方法生成的 .HTML 报告:

py.test --cov-report html pytest/01_smoke.py

我确信它会将其放置在父位置或测试脚本位置。两者都没有,我一直无法找到。所以我认为它根本没有生成?

4

3 回答 3

33

我认为您还需要指定要覆盖的目录/文件,py.test --cov=MYPKG --cov-report=html然后html/index.html生成 a 。

于 2013-07-11T14:11:05.720 回答
13

如果您不指定 --cov=/path/to/code 那么它根本不会生成 html。

$ py.test --cov-report html test_smoke.py
== test session starts == 
platform linux2 -- Python 2.7.12, pytest-3.4.0, py-1.5.2, pluggy-0.6.0 rootdir: /home/someuser/somedir, inifile: plugins: xdist-1.22.0, forked-0.2, cov-2.5.1 collected 3 items                                                                 


test_smoke.py ...                                             [100%]

== 3 passed in 0.67 seconds ==

我们可以看到没有创建输出的消息...但是如果我们指定 --cov=...

$ py.test --cov-report html test_smoke.py --cov=/path/to/code
== test session starts ==
platform linux2 -- Python 2.7.12, pytest-3.4.0, py-1.5.2, pluggy-0.6.0
rootdir: /home/someuser/somedir, inifile:
plugins: xdist-1.22.0, forked-0.2, cov-2.5.1
collected 3 items                                                                                                                                                                                                                                                         

test_smoke.py ...                                            [100%] 

---------- coverage: platform linux2, python 2.7.12-final-0 ----------
Coverage HTML written to dir htmlcov

我们现在看到没有通过测试的统计信息,相反我们看到覆盖率被写入 HTML 并发送到默认目录:./htmlcov

注意:如果你想要一个不同的目录,然后将 :/path/to/directory 附加到输出样式 html -> py.test --cov-report html:/path/to/htmldir test_smoke.py --cov=/path /to/代码

如果您看到一个普通的 html 文件,这表明您的问题可能是 --cov=/path/to/my/pkg ......您确定您正在测试的代码存在于此吗?

于 2018-02-27T03:46:26.293 回答
0

如果要生成 html 报告,请给出测试文件的完整文件路径。

py.test --cov-report html test_file_name.py --cov=/home/ubuntu/venv/python3/lib/python3.7/site-packages/test/

然后启动一个python服务器

python -m http.server 

导航到htmlhtmlcov 目录中的文件

http://0.0.0.0:8000/venv/python3/lib/python3.7/site-packages/htmlcov/

你会看到报告

于 2020-02-05T21:55:49.523 回答