我正在用python编写单元测试,并试图生成代码覆盖率,但我没有看到术语或HTML报告。
我的Python 组件结构如下所示:
.
|-- 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源文件:
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:])测试类和测试用例:
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
[run]
include =
bin/*.py,lib/*.py
omit =
setup.py,tests/*.py
[report]
exclude_lines =
if __name__ == .__main__.:pytest.ini
[pytest]
testpaths = tests通过执行以下命令执行和传递测试用例
python3 -m py.test --cov='.' --cov-report=xml --cov-report=term --junitxml=junit.xml -o junit_family=xunit2但是,没有生成任何报告,我可以看到以下输出。
================================================================================= 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:
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并多次重新创建,但是我没有看到不同的结果。
发布于 2022-10-26 10:38:25
我不知道为什么它没有显示报告,但是请记住,您可以在测试运行后创建报告:
python3 -m pytest --cov='.' --junitxml=junit.xml -o junit_family=xunit2
python3 -m coverage report
python3 -m coverage xml
python3 -m coverage htmlhttps://stackoverflow.com/questions/74200980
复制相似问题