我们最近迁移了一个应用程序,我们必须对其进行docker和docker组合。
在没有docker的情况下,我们过去常常使用rspec spec
运行测试,例如,在使用docker的时候,我们会使用做同样的事情
docker-compose run app rspec spec
现在,在旧的场景中,当我想要测试覆盖率的报告时,我会使用:
open coverage/index.html
但和docker一起尝试是行不通的。尝试docker-compose run app open coverage/index.html
效果不佳。事实上,在我的项目下并没有一个叫做覆盖的文件夹。
我试着在网上左右搜索docker的简单cov的任何例子,但都找不到。任何关于如何使其发挥作用的提示都将不胜感激。
打开
您应该从本地文件夹打开coverage/index.html
,而不是从容器文件夹打开。
当你说"事实上,在我的项目下并没有一个叫做覆盖的文件夹">,你说的是容器项目文件夹还是本地项目文件夹?
如果在容器上运行rspec spec
命令后,容器上没有/coverage
文件夹,请确保在其顶部的spec/rails_helper
文件上启动Simplecov:
require 'simplecov'
SimpleCov.start
在容器上运行rspec spec
后,应创建/coverage
文件夹,并自动同步到本地项目文件夹,这样您就可以在浏览器上打开coverage/index.html
文件。
如果它没有自动同步,您可以使用docker compose cp
命令将其复制到本地文件夹:
docker compose cp app:/app_root_folder/coverage/index.html ./coverage/index.html
其中:
app
是您的容器标签app_root_folder
是您的Dockerfile
中的WORKDIR
./coverage/index.html
是本地计算机上的目标文件夹
在尝试从容器中复制/coverage
文件夹之前,请确保已在本地目录中创建了该文件夹。
mkdir coverage