我正在使用Docker运行单元测试,生成cobertura代码覆盖率结果,然后生成关于这个的HTML报告(使用
ReportGenerator
)然后,我将代码覆盖率结果文件和HTML报告发布到vsts devops。
以下是我需要运行的命令:
# Generates coverage.cobertura.xml for use in the next step.
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=codecoveragereports/
# Generates HTML reports from coverage.cobertura.xml file.
dotnet reportgenerator -reports:app/test/MyApplication.UnitTests/codecoveragereports/coverage.cobertura.xml -targetdir:codecoveragereports -reportTypes:htmlInline
现在在Dockerfile:
WORKDIR ./app/test/MyApplication.UnitTests/
RUN dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=codecoveragereports/
ENTRYPOINT ["/bin/bash", "-c", "dotnet reportgenerator -reports:codecoveragereports/*.xml -targetdir:codecoveragereports -reportTypes:htmlInline"]
建立形象:
docker build -t myapplication.tests -f dockerfile --target tester .
并运行它:
docker run --rm -it -v $PWD/codecoveragereports:/app/test/MyApplication.UnitTests/codecoveragereports myapplication.tests:latest
问题:
生成的结果文件
dotnet test
是否生成(我可以用
RUN dir
,但当我指定一个卷(使用
-v
对
docker run
.
是否无法在图像中生成的文件上创建卷
docker build
?