Azure DevOps管道在将NUnit.ConsoleRunner nuget包更新为3.15版本后失败。命令用于运行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 Net4.5.2框架不可用。可用框架: mono-4.0 at NUnit.Engine.Services.TestAgency.GetAgent (NUnit.Engine.TestPackage包) 0x0008e in <83a050af71a545d186bc8c62a15c3005>:0 at <83a050af71a545d186bc8c62a15c3005>:0 () 0x0003d in <83a050af71a545d186bc8c62a15c3005>:0 at NUnit.Engine.Runners.ProcessRunner.RunTests (NUnit.Engine.ITestEventListener listener,NUnit.Engine.TestFilter filter) 0x0001f in <83a050af71a545d186bc8c62a15c3005>:0
这在NUnit.ConsoleRunner版本3.8.0中运行得很好。使用目标.Net框架vresion 4.5.2能够在visual中构建和运行测试用例,没有任何问题(在这两个版本中)
Link建议从package文件夹中编辑nunit-agent.exe.config文件,以添加受支持的环境,在我的情况下,这是不可能的,因为CI/CD每次都会获取包的新副本。
nunit-agent.exe.configfile位于\packages\NUnit.ConsoleRunner.3.15.0\tools\ path中,其中提到支持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>其中,在启动标记中的3.8.0版本的配置文件中没有提到的平台版本。
有什么提示或建议来解决这个问题吗?谢谢
发布于 2022-02-18 11:23:39
看来这可能是上周针对nunit-控制台3.14:https://github.com/nunit/nunit-console/issues/1130报告的问题
(如果它似乎适用于你,你可能会对这个问题发表评论。)
解决办法是使用较早的控制台版本。记者说3.12行得通。
https://stackoverflow.com/questions/71172042
复制相似问题