对于这里的问题,这似乎“太容易”了,但我老实说很难找到关于这个问题的任何信息。
基本上,这是要点。我们在使用C#编写的不同平台(例如Windows和Mac)上有几个项目。我们使用xUnit通过xUnit.net进行单元测试,这些测试在平台之间共享。我正试图让这些测试在xUnit.net控制台运行器中运行,如here所述,但我似乎无法让运行器以单声道工作。我还需要做些什么吗?以下是我尝试通过命令行执行的操作:
mono [REPOSITORY_PATH]/Apple/Source/Solutions/packages/xunit.runner.console.2.1.0/tools/xunit.console.exe "[REPOSITORY_PATH]/Apple/Source/Platform/Mac/MacXunitTests/bin/Debug/[PROJECT_NAME].Tests.Mac.dll"
以下是我收到的错误:
xUnit.net Console Runner (32-bit .NET 4.0.30319.17020)
Can't find custom attr constructor image: /private/var/folders/0p/s4d1k4150zd2v8b0y1q2nz902v4jm6/T/d724bcb6-cce1-4430-b645-6dadd980c2ee/d724bcb6-cce1-4430-b645-6dadd980c2ee/assembly/shadow/6755efca/b6f5411e_d1a0aed4_00000002/xunit.execution.desktop.dll mtoken: 0x0a000009
Unhandled loader error: 7, (null) xunit.core, Version=2.0.0.2929, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c Xunit.Sdk.PlatformSpecificAssemblyAttribute
* Assertion: should not be reached at loader.c:298
答案 0 :(得分:1)
事实证明,这是使用旧版xUnit.net的结果。我们使用的是2.0版的某种候选版本,这导致了我发布的错误。删除nuget包并重新安装2.0似乎使测试可以运行。
我现在发现控制台运行中的测试失败,但这似乎与在集合夹具中加载程序集时出现一些错误有关,但这不在原始问题的范围内。