.NET 项目 Nunit 测试在单声道构建期间失败

.NET project Nunit tests are failing during mono build

我是 CI 的新手(至少从全新的设置点开始)。我在 Rider 中创建了一个项目,使用 NUnit 的默认版本,如果你 select 到 'Create new NUnit Project',我现在正在尝试使用 travis-[=34= 为它设置一个自动构建].

我的项目和测试项目(在 Rider 的项目属性中确认)的目标 .NET 框架版本是 4.5。

我使用的Nunit版本是Rider默认提供的版本,3.5。

这是我的 .travis.yml 构建文件:

language: csharp
solution: .sln
install:
  - nuget restore FindWordsWithConcatenations.sln
  - nuget install NUnit.Runners -Version 3.5.0 -OutputDirectory testrunner
script:
  - xbuild  /p:Configuration=Debug ./FindWordsWithConcatenations.sln
  - mono ./testrunner/NUnit.ConsoleRunner.3.5.0/tools/nunit-agent.exe ./TestFindWordsWithConcatenations/bin/Debug/TestFindWordsWithConcatenations.dll

我在自己的机器上通过 运行ning nuget 命令确认测试 运行ner 路径应该是正确的,当我 运行 nunit-agent(通过代理, agent-x86,或 agent-console)我收到以下错误(在本地和服务器上):

Unhandled Exception: System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
   at System.Guid..ctor(String g)
   at NUnit.Agent.NUnitTestAgent.Main(String[] args)

我也试过运行不指定配置模式,指定调试和发布的配置模式。

不幸的是,googling/stack 溢出的正常策略没有帮助,我在几个问题中看到了这个错误,但原因似乎与我遇到的问题无关。

The last build of the pipeline is available to view here, all the builds thus far have failed, previous builds can be seen here.

提前致谢,如果有人知道此问题的原因,或者我如何以不同的方式解决测试 运行ning,我将不胜感激。

解决了。

将 travis 配置的脚本部分更新为:

script:
  - xbuild  /p:Configuration=Debug ./FindWordsWithConcatenations.sln
  - mono ./testrunner/NUnit.ConsoleRunner.3.5.0/tools/nunit3-console.exe ./TestFindWordsWithConcatenations/bin/Debug/TestFindWordsWithConcatenations.dll

所以现在 运行正在运行正确的控制台应用程序。还必须将测试路径稍微修改为服务器上的 运行。