如果我在docker容器中调用\z
run ...,则会根据需要获得一个python3 -m coverage
文件。
但是,如果我尝试使用容器外部的.coverage
文件生成html
或文本报告,则会得到:
.coverage
No source for code: '/opt/anomaly/backplane/__init__.py'.
Aborting report output, consider using -i.
存在,并且我在同一目录中有以下./backplane/__init__.py
:
.coveragerc
尽管[paths]
source =
./
/opt/anomaly/.
文件打算告诉coverage.py
,但似乎.
不知道/opt/anomaly
和.coveragerc
应该被视为同一件事他们是。
我已经在Google上搜索了很多,却一无所获。
我还生成了容器内的报告,并且工作正常。但是我真的很想在容器外部生成它们。
更新:
Ned在coverage.py
中提供了只有coverage combine
使用[paths]
的有用信息。
这是我目前要面对的问题:
.coveragerc
顺便说一句,我现在尝试在.coveragerc中使用相对路径,在.coveragerc中也使用绝对路径。目前都没有为我工作。
请注意,.api-coverage和.coverage具有相同的长度-由于路径的更改,我认为.coverage应该具有不同的长度。对于相对路径,.coverage应该较小;对于绝对路径,.coverage应该较大。
顺便说一句,我正在使用:
+ ./bin/terminate-api
+ sleep 2
+ lses
+ ls -l .coverage .api-coverage
ls: cannot access '.coverage': No such file or directory
-rw-rw-r-- 1 root root 13358 Jul 22 14:15 .api-coverage
+ python3 -m coverage combine .api-coverage
+ lses
+ ls -l .coverage .api-coverage
ls: cannot access '.api-coverage': No such file or directory
-rw-r--r-- 1 dstromberg dstromberg 13358 Jul 22 14:15 .coverage
+ python3 -m coverage html
No source for code: '/opt/anomaly/backplane/__init__.py'.
Aborting report output, consider using -i.
谢谢!
答案 0 :(得分:0)
运行可执行文件.coverage
需要运行时环境,在您的情况下,可以在容器内而不是主机内提供该环境。
这与删除结尾的/结合在一起。来自我的.coveragerc的/ opt / anomaly /。路径似乎已经解决了问题。