Docker `覆盖范围是否合并来自不同容器的结果?
复制:Docker `覆盖范围是否合并来自不同容器的结果?,docker,coverage.py,Docker,Coverage.py,复制: 创建一个包含两个服务的项目 使用docker compose run--rm--entrypoint='pipenv run coverage run[…]'[service name]在自己的容器中测试每个服务 使用容器外部的coverage Combine first service/.coverage second service/.coverage组合结果 运行coverage report,或者更糟的是运行coverage html 最后的这些命令找不到源文件,因为.cover
docker compose run--rm--entrypoint='pipenv run coverage run[…]'[service name]
在自己的容器中测试每个服务coverage Combine first service/.coverage second service/.coverage
组合结果coverage report
,或者更糟的是运行coverage html
- 不使用Docker
- 在同一容器中运行两个测试套件
- 编写脚本以修改组合的.coverage文件
路径
声明:
.C-service1:
[paths]
source =
service1
/src/app
.保险人C-SERVICE 2:
[paths]
source =
service2
/src/app
这需要两个覆盖范围组合调用:
coverage combine --append --rcfile=.coveragerc-service1 service1/.coverage
coverage combine --append --rcfile=.coveragerc-service2 service2/.coverage
(rm.coverage
首先启用重新运行。)我还不了解所有这些,但是可以有多个[path]
条目有帮助吗?为什么这两种服务都使用“/src/app”?难道每个应用程序都不应该有自己的路径吗?我不希望声明两个源代码相同的source
s会起作用。至于你的第二点,它们在不同的容器中运行,因此它们的路径绝对不应该相互依赖。我不是说它们的路径应该相互依赖,但为什么它们是相同的?这是来自不同回购协议的不同代码。为什么它们不是/src/app1和/src/app2?如果出于某种原因,您需要能够为其他一些工具统一引用它们,那么您还可以有一个从/src/app到/src/app1的符号链接,它们不在不同的repo中,为什么我要强制在每个服务上部署到不同的路径?符号链接只是让事情复杂化了,因为现在你说有时使用一条路径,有时使用另一条路径。好吧,也许我不理解Docker的思维方式。对我来说,有两个不同的源树作为同一条路径运行是很奇怪的。使用不同路径的一个原因是其他工具(如coverage.py)可能认为路径有意义。也许我还是错了。我很高兴你找到了解决办法。