NUnit.ConsoleRunner引发System.ArgumentException:net-4.5.2框架不可用



将NUnit.ConsoleRunner nuget包更新到3.15版本后,Azure DevOps管道失败。用于运行nunit测试的命令:

exec /Library/Frameworks/Mono.framework/Versions/Current/bin/mono --debug /Users/name/Documents/MyProject/packages/NUnit.ConsoleRunner.3.15.0/tools/nunit3-console.exe /Users/name/Documents/MyProject/TestProject.NUnitTest/bin/Release/TestProject.NUnitTest.dll

哪个抛出以下错误:

System.ArgumentException:net-4.5.2框架不可用。可用框架:mono-4.0--ArgumentException net-4.5.2框架不可用。可用框架:mono-4.0NUnit.Engine.Services.TestAgent.GetAgent(NUnit.Egine.TestPackage封装([0x008e]的<83a050af71a545d186bc8c62a15c3005>:0位于NUnit.Engineed.Runners.ProcessRunner.CreateAgentAndRunnerIfNeeded(([0x003d]在<83a050af71a545d186bc8c62a15c3005>:0位于NUnit.Engineer.Runners.ProcesserRunner.RunTests(NUnit.Engine.ITestEventListener侦听器,NUnit.Egine.TestFilterfilter([0x001f]的<83a050af71a545d186bc8c62a15c3005>:0

这在NUnit.ConsoleRunner 3.8.0版本中运行良好。并使用target.Net框架vrision 4.5.2能够在visual studio中构建和运行测试用例,而不会出现任何问题(在两个版本中(

链接建议编辑软件包文件夹中的nunit-agent.exe.config文件以添加支持的环境,这在我的情况下是不可能的,因为CI/CD每次都会占用软件包的新副本。

位于\packages\nunit.ConsoleRunner.3.15.0\tools\path中的nunit-agent.exe配置文件具有以下内容,其中提到它支持4.0和2.0 的运行时版本

<?xml version="1.0" encoding="utf-8"?>
<configuration> 
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319" />
<supportedRuntime version="v2.0.50727" />
</startup>
<runtime> 
<legacyUnhandledExceptionPolicy enabled="1" /> 
<legacyCorruptedStateExceptionsPolicy enabled="true" /> 
<loadFromRemoteSources enabled="true" /> 
<AppContextSwitchOverrides value="Switch.System.Diagnostics.IgnorePortablePDBsInStackTraces=false" />
</runtime>
</configuration>

其中,startup标记中版本3.8.0的配置文件中没有明确提到的平台版本。

有任何解决这个问题的提示或建议吗?感谢

看起来可能是上周针对nunit控制台3.14报告的这个问题:https://github.com/nunit/nunit-console/issues/1130

(如果它似乎适用于你,你可以对这个问题发表评论。(

解决方法是使用早期的控制台版本。本刊记者说3.12有效。

最新更新