我在python中有一个服务代码。对于功能测试,我针对docker容器中内置的同一服务在本地运行测试,因为我想测试REST API调用或Rabbitmq消息等。
第1步。
$ docker-compose.yml
third_party_service_1:
...
third_party_service_2:
...
my_service:
build:
context: .
...
第2步。
$ docker-compose up --build -d
第3步。
$ coverage run -m pytest tests/functional
很显然,此覆盖范围无效,因为docker映像中的代码是从本地复制的代码。
在这种情况下有没有办法收集承保范围?
谢谢!
编辑: 我的意思是,我没有从功能测试中获得覆盖,因为由于测试而运行的代码不是运行coverage和pytest命令的本地代码。功能测试知道它们必须攻击我构建的docker映像。因此,就本文而言,这就像您要针对第三方服务启动测试一样,因为它无法知道执行了哪些代码。
---------------------
| LOCAL |
| my_service code |
| |
| I run: |
| $ coverage run... |
---------------------
---------------------
| DOCKER |
| my_service code |
| (up&running) |
---------------------
答案 0 :(得分:0)
您可以使用docker-compose run
在docker容器中运行测试和覆盖率报告:
docker-compose run my_service coverage run -m pytest tests/functional
这将在my_service