在Docker容器内运行Pyspark测试用例的Test Coverage



我有一个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)

相关内容

  • 没有找到相关文章

最新更新