我可以为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,但它似乎不知道这个。
答案 0 :(得分:1)
这是在Mono中使用NUnit的另一个令人沮丧的观点。据我所知,您需要将所有这些丢失的文件(不仅仅是nunit.framework.dll
)放在与nunit-console.exe
相同的目录中。
在mono
或nunit-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 更改为 .