使用 xUnit.net 控制台运行器和 Mono

Using xUnit.net Console Runner With Mono

这似乎是 "too easy" 此处问题的主题,但老实说,我很难找到有关该主题的任何信息。

基本上,这是要点。我们有几个跨不同平台(例如 Windows 和 Mac)的项目,它们是用 C# 编写的。我们通过平台之间共享的 xUnit.net 使用 xUnit 进行单元测试。我正在尝试在 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

事实证明,这是使用旧版本 xUnit.net 的结果。我们正在使用某种 2.0 的候选发布版本,这导致了我发布的错误。删除 nuget 包并重新安装 2.0 似乎可以使测试运行。

我现在发现控制台运行器中的测试失败了,但这似乎与在集合夹具中加载程序集时出现的一些错误有关,但这超出了原始问题的范围。