gpt4 book ai didi

c# - 尝试在Docker管道中生成测试覆盖率时在 “No report files specified”中运行(Linux)

转载 作者:行者123 更新时间:2023-12-02 20:45:47 27 4
gpt4 key购买 nike

我在基于 C#-。NET-Core 的解决方案中,使用基于Linux的基于docker管道来构建 NUnit 框架并进行自动测试。

我的.gitlab-ci.yml文件中的“测试”作业:

runTests:
stage: test
image: docker-registry.xyz.de/${CI_PROJECT_PATH}/build:${CI_COMMIT_REF_SLUG}_backend_${CI_COMMIT_SHA}
services:
- name: atsnngs/mysql-aurora-compatible
alias: mysql_test

tags:
- docker
- linux
- shared
variables:
GIT_STRATEGY: none
artifacts:
expire_in: 30m
paths:
- $CI_PROJECT_DIR/pages
script:
- mkdir $CI_PROJECT_DIR/pages
- mkdir mkdir /tmp/pages
- cd /app
- nohup dotnet run --project ./ServiceLoader/ServiceLoader.csproj Test > dotnetcore.log &
- sleep 10s && dotnet test -v normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Exclude=[NUnit3.TestAdapter]*
- reportgenerator -reports:/app/Tests/coverage.opencover.xml -targetdir:/tmp/pages
- ls -l /tmp/pages
- mv /tmp/pages/index.htm /tmp/pages/index.html
- mv /tmp/pages $CI_PROJECT_DIR/
dependencies:
- build

在我用来构建用于执行测试的镜像的Dockerfile中,我安装了报告生成工具(出于可读性原因,我跳过了dotnet恢复并构建了Dockerfile的某些部分):
FROM microsoft/dotnet:2.1-sdk AS build

# install reportgenerator
RUN dotnet tool install --global dotnet-reportgenerator-globaltool
ENV PATH /root/.dotnet/tools:$PATH

但是当我运行管道时,报告生成失败:
$ reportgenerator -reports:/app/Tests/coverage.opencover.xml -targetdir:/tmp/pages
No report files specified.

我已经将Dockerfile和.gitlab-ci.yml文件与另一个使用此方法的项目进行了比较,但找不到任何可以解释此错误的区别。还有其他需要看的地方吗?

任何帮助深表感谢!

最佳答案

通过添加 Coverlet.msbuild dotnet-reportgenerator-cli Nuget包解决了该问题。这些软件包丢失,并导致报告生成中的错误。

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<IsTestProject>true</IsTestProject>
<IsPackable>false</IsPackable>
...
</PropertyGroup>

<ItemGroup>
...
<PackageReference Include="Nunit" Version="3.11.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.12.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
<PackageReference Include="coverlet.msbuild" Version="2.4.0" />
<PackageReference Include="dotnet-reportgenerator-cli" Version="4.0.5-rc2" />

</ItemGroup>

</Project>

关于c# - 尝试在Docker管道中生成测试覆盖率时在 “No report files specified”中运行(Linux),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54784587/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com