WARNING: Failed to generate report: No data to report error in python using pytest module
10,859
Solution 1
--cov
accepts either directories or package names, not single files. This means that --cov=sample.py
looks for a package (directory) named sample
and inside it, a module (file) named py.py
to record coverage, and fails. Either use
$ pytest --cov=sample
or
$ pytest --cov=.
Solution 2
Rename test files as 'test_' in order to run the below command.
pytest --cov=<package (directory) or module (file)>
Example: Suppose we have two files in a directory:
- sample.py: contains Python code
- test_sample.py: contains unit tests for sample.py then coverage command should be:
pytest --cov=sample
Author by
Admin
Updated on July 28, 2022Comments
-
Admin over 1 year
Sample.py code:
def sum(num1, num2): return num1 + num2 def sum_only_positive(num1, num2): if num1 > 0 and num2 > 0: return num1 + num2 else: return None test_sample.py code from . import sample import pytest def test_sum(): assert sample.sum(5, 5) == 10 def test_sum_positive_ok(): assert sample.sum_only_positive(2, 2) == 4 def test_sum_positive_fail(): assert sample.sum_only_positive(-1, 2) is None
Coverage command :
pytest test_sample.py --cov=sample.py
Error:
platform linux -- Python 3.5.2, pytest-5.4.1, py-1.8.1, pluggy-0.13.1 rootdir: /home/apathapa/unit_test/warriorframework_py3 plugins: cov-2.8.1 collected 3 items test_sample.py ... [100%]Coverage.py warning: Module sample.py was never imported. (module-not-imported) Coverage.py warning: No data was collected. (no-data-collected) WARNING: Failed to generate report: No data to report. /home/apathapa/ut/lib/python3.5/site-packages/pytest_cov/plugin.py:254: PytestWarning: Failed to generate report: No data to report. self.cov_controller.finish() ----------- coverage: platform linux, python 3.5.2-final-0 ----------- Name Stmts Miss Cover --------------------------- ============================================================= 3 passed in 0.13s ==============================================================
Can anyone help me how to resolve this error?