Py.Test : Reporting and HTML output
Asked Answered
G

3

33

This is not a technical question at all really. However, I can not locate my .HTML report that is supposed to be generated using:

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

I thought for sure it would place it in the parent location, or the test script location. Does neither and I have not been able to locate. So I am thinking it is not being generated at all?

Greylag answered 9/7, 2013 at 20:41 Comment(2)
Have you tried py.test --help?Jennings
Yes, I had. I'll post here to show it gives no more info than I have already. --cov-report=type type of report to generate: term, term-missing, annotate, html, xml (multi-allowed)Greylag
C
46

I think you also need to specify the directory/file you want coverage for like py.test --cov=MYPKG --cov-report=html after which a html/index.html is generated.

Cytokinesis answered 11/7, 2013 at 14:11 Comment(2)
Thanks, hpk42. That did work. The output .html is basically a printout of the script, but. It's a step forward.Greylag
looks like you need to easy_install the pytest-cov project separately.Earlap
E
15

if you do not specify --cov=/path/to/code then it will not generate the html at all.

$ 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 ==

We can see that there is no message that output was created... However if we specify --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

We now see that there are no stats for tests that passed, instead we see that coverage was written to HTML and sent to the default directory: ./htmlcov

NOTE: if you want a different directory, then affix :/path/to/directory to the output style html -> py.test --cov-report html:/path/to/htmldir test_smoke.py --cov=/path/to/code

If you see a plain html file, this is an indication that your problem is the --cov=/path/to/my/pkg perhaps... are you sure that the code you are testing lives here?

Erwinery answered 27/2, 2018 at 3:46 Comment(0)
W
0

If you want to generate report in html, give full file path of the test file.

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

Then start a python server

python -m http.server 

Navigate to the html file in htmlcov directory

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

You will see the report

Wismar answered 5/2, 2020 at 21:55 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.