我有一个pyspark项目,只有几个单元测试用例文件
test case files
test_testOne.py
test_testcaseTwo.py
这些测试类在docker容器中执行。在容器内运行测试时,我也想获得测试覆盖率报告。因此,我在requirements.txt文件
中添加了以下行coverage==6.0.2
在docker容器中,我运行以下命令
python -m coverage discover -s path/to/test/files
我得到以下输出
/opt/conda/bin/python: No module named coverage
谁能帮我成功地运行我的测试与测试覆盖。请注意,使用以下命令,所有测试用例都成功地在容器内运行。但是它没有生成测试覆盖率
python -m unittest discover -s path/to/test/files
如果您使用的是coverage
,则命令:
python -m unittest discover -s path/to/test/files
就变成:
coverage run -m unittest discover -s path/to/test/files
在文档中指定:快速开始
由于您使用的是docker,一个好的选择是在docker容器中创建一个卷,当测试完成时,coverage
可以生成一个报告并将其存储在您的主机上。这样你就可以自动化整个过程并保存报告。
- 在启动docker容器时使用
-v
标志创建卷(更多信息:使用卷) - 测试后,运行
coverage html -d /path/to/your/volume/inside/docker
(查看文档以获得更多选项:coverage html)