我在 MonoDevelop 下建立了一个简单的项目,并且可以从那里成功运行测试 (*)。
当我从命令行尝试 nunit-console.exe 时,我得到了这个:
.../mono2/bin/Debug$ nunit-console mono2.exe
NUnit version 2.5.10.0
...
Runtime Environment -
OS Version: Unix 2.6.32.44
CLR Version: 2.0.50727.1433 ( 2.10.8.1 (Debian 2.10.8.1-1~dhx1~lucid1) )
ProcessModel: Default DomainUsage: Single
Execution Runtime: Default
Unhandled Exception:
System.ArgumentException: NUnit components for version 4.0.30319 of the CLR are not installed
...
如果我忽略了一些重要的事情,请告诉我。
nunit-gui 给出了同样的错误。nunit-gui 有一个从 2.0 切换到 4.0 的选项,但是当我尝试它时,它又给了我同样的错误,所以不允许我更改它。
更多细节:Ubuntu 10.04,使用http://badgerports.org/lucid.html存储库,所以 Mono 2.10.8.1。
根据 MonoDevelop 中的项目选项,该项目设置为使用“Mono/.NET 4.0”。
更多信息:
/usr/bin/nunit-console 包含以下内容:
#!/bin/sh
exec /usr/bin/cli /usr/lib/nunit/nunit-console.exe "$@"
/usr/lib/nunit/ 目录包含:
3073 2011-03-14 18:13 nunit.exe.config
2598 2011-03-14 18:13 nunit-console.exe.config
23040 2012-02-29 10:19 nunit-console-runner.dll
4608 2012-02-29 10:19 nunit-console.exe*
76288 2012-02-29 10:19 nunit.uiexception.dll
259072 2012-02-29 10:19 nunit.uikit.dll
183808 2012-02-29 10:19 nunit-gui-runner.dll
4096 2012-02-29 10:19 nunit.exe*
nunit-console.exe.config 包含:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<!-- We need this so test exceptions don't crash NUnit -->
<legacyUnhandledExceptionPolicy enabled="1" />
<!-- Look for addins in the addins directory for now -->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib;addins"/>
</assemblyBinding>
<!--
The following <assemblyBinding> section allows running nunit under
.NET 1.0 by redirecting assemblies. The appliesTo attribute
causes the section to be ignored except under .NET 1.0
on a machine with only the .NET version 1.0 runtime installed.
If application and its tests were built for .NET 1.1 you will
also need to redirect system assemblies in the test config file,
which controls loading of the tests.
-->
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
appliesTo="v1.0.3705">
<dependentAssembly>
<assemblyIdentity name="System"
publicKeyToken="b77a5c561934e089"
culture="neutral"/>
<bindingRedirect oldVersion="1.0.5000.0"
newVersion="1.0.3300.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Data"
publicKeyToken="b77a5c561934e089"
culture="neutral"/>
<bindingRedirect oldVersion="1.0.5000.0"
newVersion="1.0.3300.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Drawing"
publicKeyToken="b03f5f7f11d50a3a"
culture="neutral"/>
<bindingRedirect oldVersion="1.0.5000.0"
newVersion="1.0.3300.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Windows.Forms"
publicKeyToken="b77a5c561934e089"
culture="neutral"/>
<bindingRedirect oldVersion="1.0.5000.0"
newVersion="1.0.3300.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Xml"
publicKeyToken="b77a5c561934e089"
culture="neutral"/>
<bindingRedirect oldVersion="1.0.5000.0"
newVersion="1.0.3300.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
*:好吧,当我尝试使用更多奇特的 Nunit 属性时,我遇到了问题;这是我试图解决的真正问题,这导致我遇到了上面描述的问题。然而,上面使用的 exe 是一个只有两个简单测试的 exe,它们在 MonoDevelop 中运行良好。