0

我在 docker 容器中运行 Flask 应用程序,将其与 postgres 容器链接,并使用 pytest 进行测试。如果我运行命令

docker run -it --env-file=.env --link postgres-test app pytest --cov=service . --cov-report html:cov_html

我的测试运行了,我可以看到输出,但是如何cov_html在这个容器停止运行之前复制覆盖目录?我希望能够在我的浏览器中以 html 格式查看覆盖率报告。

我当前的解决方法非常hacky,docker run -it --env-file=.env --link postgres-test app bash然后pytest直接在容器中运行,而容器仍在运行时,我docker cp进入本地目录。

我宁愿只运行类似于原始命令的东西,当 pytest 完成时,本地目录会被最新的覆盖率报告覆盖,所以我需要做的就是刷新浏览器来查看更改。

4

1 回答 1

1

您好 docker,您可以编写一个自定义 ENTRYPOINT 并使用一个卷,这样一旦您的测试完成,入口点脚本的末尾就会将 cov_html 复制到该卷所在的区域。像这样的东西

#!/bin/bash

#command to run tests

cp /location_to/cov_html /location_to/volume
于 2019-05-21T17:02:40.430 回答