我正在使用Docker运行CircleCI,然后测试我的代码,测试完成后,测试覆盖率将记录到一个txt文件中,我想将其复制到工件文件夹中。
- run:
name: Run test coverage
command: |
docker-compose exec api mkdir /tmp_reports
docker-compose exec api coverage report > /tmp_reports/coverage_output.txt
docker cp api:/tmp_reports/coverage_output.txt /tmp/coverage_results
- store_artifacts:
path: /tmp/coverage_results
CircleCI错误
/bin/bash: line 1: /tmp_reports/coverage_output.txt: No such file or directory
Exited with code 1
我已经在本地运行了这个,并将文件从docker容器复制到我的本地目录,但circle似乎对此有问题。有人能给我指一指正确的方向吗?谢谢。
在脚本的第二行,将输出发送到文件> /tmp_reports/coverage_output.txt
,该文件将写入容器外的文件。输出的重定向由容器外的bash处理。
因此,在第1行中,您在容器内创建了目录,而在第2行中,它失败了,因为目录/tmp_reports
不存在于容器外。
您可以通过将所有3行替换为:来解决此问题
mkdir -p /tmp/coverage_results
docker-compose exec api coverage report > /tmp/coverage_results/coverage_output.txt