使用Mono运行nunit-console.exe的问题

时间:2010-06-03 16:43:03

标签: mono nunit nunit-console

我可以为NUnit NUnit test under mono创建一个dll,但是当我尝试使用nunit-console.exe运行时,我收到以下错误消息。

Runtime Environment - 
   OS Version: Unix 10.3.0.0
  CLR Version: 2.0.50727.1433 ( 2.6.4 (tarball Thu Apr 22 13:24:33 MDT 2010) )

ProcessModel: Default    DomainUsage: Single
Execution Runtime: mono-2.0

** (/Users/smcho/bin/NUnit-2.5.5.10112/bin/net-2.0/nunit-console.exe:36800): WARNING **: The following assembly referenced from /private/var/folders/m4/m4u1hmP+FHOQaiZbHj1UCk+++TI/-Tmp-/nunit20/ShadowCopyCache/36800_634111616836311880/Tests_-22323139/assembly/shadow/54274fc2/118e035c_45a94c9e_00000001/mut.dll could not be loaded:
     Assembly:   nunit.framework    (assemblyref_index=1)
     Version:    2.5.5.10112
     Public Key: 96d09a1eb7f44a77
System error: Invalid argument


** (/Users/smcho/bin/NUnit-2.5.5.10112/bin/net-2.0/nunit-console.exe:36800): WARNING **: Could not load file or assembly 'nunit.framework, Version=2.5.5.10112, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77' or one of its dependencies.

可能有什么问题?我在/Users/smcho/bin/NUnit-2.5.5.10112/bin/net-2.0/framework下有nunit.framework.dll,但它似乎不知道这个。

2 个答案:

答案 0 :(得分:1)

这是在Mono中使用NUnit的另一个令人沮丧的观点。据我所知,您需要将所有这些丢失的文件(不仅仅是nunit.framework.dll)放在与nunit-console.exe相同的目录中。

mononunit-console.exe中可能有一个命令行选项来指定另一个目录来搜索丢失的DLL - 我不确定。除此之外,您必须将丢失的DLL复制到与nunit-console.exe相同的文件夹中,或者您必须cd进入framework文件夹并使用mono ../nunit-console.exe /path/to/my/tests.dll < / p>

答案 1 :(得分:0)

安装 nuget 后,您可以使用它来安装 nunit.console,如下所示: (这是来自我的 .circlci/config.yml 文件)

- run: mono --runtime=v4.0 nuget.exe install nunit.console
- run: msbuild MySolution.sln
- run: mono --runtime=v4.0 NUnit.ConsoleRunner.3.12.0/tools/nunit3-console.exe FirstModule.Tests/bin/Debug/FirstModule.Tests.dll
- run: mono --runtime=v4.0 NUnit.ConsoleRunner.3.12.0/tools/nunit3-console.exe SecondModule.Tests/bin/Debug/SecondModule.Tests.dll

诀窍是为 NUnit.ConsoleRunner 指定整个路径,并注意 - 被版本 3 更改为 .