docker - 在 Docker 容器内为 Pyspark 测试用例运行测试覆盖
问题描述
我有一个带有少量单元测试用例文件的 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
可以生成一个报告并将其存储在您的主机上。像这样,您可以自动化整个过程并保存报告。
-v
启动 docker 容器时使用标志创建卷(更多信息:使用卷)- 测试后,运行
coverage html -d /path/to/your/volume/inside/docker
(查看文档以获取更多选项:coverage html)
推荐阅读
- javascript - 如何将ajax调用值转换为C#
- sql - 从 SQL 中的字符串中提取关键字
- php - 如何将 Divi 模块移动到子主题中以供以后自定义?
- javascript - 无法动态转译 ES 模块 需要通过 SystemJS.config 配置加载器插件
- javascript - 刷新嵌套路由 - React Router 4
- reactjs - React:找不到相对于目录“src”的预设“env react”
- c# - 是否可以仅在 Switch-Statement 中使用字符串的一部分?
- javascript - XMLHttpRequest 从 PHP 编码的服务器返回 406 错误
- algorithm - printParty方法的复杂度分析
- c# - Utf8Json 反序列化为基于标记字段的类型