coverage.py 给出 "No source for code",尽管 .coveragerc 似乎告诉它代码在哪里
coverage.py gives "No source for code", despite .coveragerc seemingly telling it where the code is
如果我在 docker 容器中调用 python3 -m coverage
运行 ...,我会根据需要得到一个 .coverage
文件。
但是,如果我尝试使用容器外部的 .coverage
文件生成 html
或文本报告,我会得到:
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
文件旨在告诉 coverage.py
他们是。
我用谷歌搜索了很多,但一无所获。
我还在容器内生成了报告,效果很好。但我真的更愿意在容器外生成它们。
更新:
Ned 提供了有用的信息,只有 coverage combine
在 .coveragerc
.
中使用了 [paths]
这是我目前面临的问题:
+ ./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.
顺便说一句,我现在尝试在 .coveragerc 中使用相对路径,也在 .coveragerc 中使用绝对路径。目前两者都不适合我。
请注意,.api-coverage 和 .coverage 具有相同的长度 - 我认为 .coverage 应该具有不同的长度,因为路径已更改。相对路径,.coverage要小一些,绝对路径,.coverage要大一些
顺便说一句,我正在使用:
$ python3 -m coverage --version
below cmd output started 2019 Mon Jul 22 02:33:02 PM PDT
Coverage.py, version 4.5.3 with C extension
Documentation at https://coverage.readthedocs.io
谢谢!
运行 可执行文件 .coverage
需要运行时环境,在您的情况下,可以在容器而不是主机内提供。
这与删除尾随 / 相结合。来自我的 .coveragerc 的 /opt/anomaly/。路径似乎已经解决了问题。
如果我在 docker 容器中调用 python3 -m coverage
运行 ...,我会根据需要得到一个 .coverage
文件。
但是,如果我尝试使用容器外部的 .coverage
文件生成 html
或文本报告,我会得到:
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
文件旨在告诉 coverage.py
他们是。
我用谷歌搜索了很多,但一无所获。
我还在容器内生成了报告,效果很好。但我真的更愿意在容器外生成它们。
更新:
Ned 提供了有用的信息,只有 coverage combine
在 .coveragerc
.
[paths]
这是我目前面临的问题:
+ ./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.
顺便说一句,我现在尝试在 .coveragerc 中使用相对路径,也在 .coveragerc 中使用绝对路径。目前两者都不适合我。
请注意,.api-coverage 和 .coverage 具有相同的长度 - 我认为 .coverage 应该具有不同的长度,因为路径已更改。相对路径,.coverage要小一些,绝对路径,.coverage要大一些
顺便说一句,我正在使用:
$ python3 -m coverage --version
below cmd output started 2019 Mon Jul 22 02:33:02 PM PDT
Coverage.py, version 4.5.3 with C extension
Documentation at https://coverage.readthedocs.io
谢谢!
运行 可执行文件 .coverage
需要运行时环境,在您的情况下,可以在容器而不是主机内提供。
这与删除尾随 / 相结合。来自我的 .coveragerc 的 /opt/anomaly/。路径似乎已经解决了问题。