【问题标题】:Run Test Coverage inside Docker container for Pyspark test cases在 Docker 容器内为 Pyspark 测试用例运行测试覆盖
【发布时间】:2021-10-29 11:41:56
【问题描述】:

我有一个带有少量单元测试用例文件的 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

【问题讨论】:

    标签: docker pyspark test-coverage


    【解决方案1】:

    如果您使用的是coverage 命令:

    python -m unittest discover -s path/to/test/files
    

    变成:

    coverage run -m unittest discover -s path/to/test/files
    

    如文档中所述:Quick Start

    由于您使用的是 docker,一个不错的选择是在 docker 容器内创建一个卷,当测试完成后,coverage 可以生成报告并将其存储在您的主机上。像这样,您可以自动化整个过程并保存报告。

    • 在启动 docker 容器时使用 -v 标志创建卷(更多信息:Use Volumes)
    • 测试后,运行coverage html -d /path/to/your/volume/inside/docker(查看文档以获取更多选项:coverage html)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多