.net - 'dotnet test' 未在 gitlab-runner 管道中找到 nunit 测试
问题描述
我有一个NUnit
测试项目(Foo.Test
)的解决方案。
+-- src
| +-- Foo.Gui
| +-- Foo.Test
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<Compile Remove="TestResults\**" />
<EmbeddedResource Remove="TestResults\**" />
<None Remove="TestResults\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="GitVersionTask" Version="5.1.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="nunit" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Foo.Gui\Foo.Gui.csproj" />
</ItemGroup>
</Project>
以下调用用于测试:
dotnet test --no-build -c Release -v n src\%TESTPROJECT%\%TESTPROJECT%.csproj --logger "trx;LogFileName=testreport.trx"
如果我在本地运行它,一切都按预期工作:
构建服务器上的相同调用未找到任何测试:
gitlab-ci.yml
test:solution:
stage: test
script:
- dotnet test --no-build -c Release -v n src\$env:TESTPROJECT\$env:TESTPROJECT.csproj --logger "trx;LogFileName=testreport.trx"
after_script:
- trx2junit src\$env:TESTPROJECT\Testresults\testreport.trx
artifacts:
reports:
junit: src\$env:TESTPROJECT\Testresults\testreport.xml
有人提示可能出了什么问题?Testproject (Foo.Test.dll) 可用并存在于构建工件中。
解决方案
在测试之前,我必须在构建管道上添加一个额外的dotnet restore
命令,以恢复project.assets.json
. 现在一切都按预期工作
test:solution:
stage: test
script:
- dotnet restore src
- dotnet test --no-build -c Release -v n src\$env:TESTPROJECT\$env:TESTPROJECT.csproj --logger "trx;LogFileName=testreport.trx"
after_script:
- trx2junit src\$env:TESTPROJECT\Testresults\testreport.trx
artifacts:
reports:
junit: src\$env:TESTPROJECT\Testresults\testreport.xml
推荐阅读
- angular - Can we send value as Y if checkbox is checked and value as N if checkbox is unchecked in angular?
- python - heroku ps:scale web=1 缩放测功机...找不到该进程类型(网络)
- c# - 错误的可空类型推断(可空引用类型)
- sql - 每月租用 postgreSQL
- regex - 如何在 PostgreSQL 中拆分字符串
- windows - 无法激活 rust-analyzer:引导错误
- python - 类中的 statmodels 给出形状错误
- c# - C# - 如何将更新值从工作在不同线程中完成的类发送回表单类
- python - 我有一个 discord.py 问题,因为 time.sleep 停止了整个过程
- windows - 通过该服务在 Windows 上使用 powershell 运行的进程 ID 获取服务名称