我已经使用C#使用asp.net mvc编写了一个简单的测试应用程序。该应用程序使用MySQL
通过使用dblinq生成到MySQL文件的linq,该应用程序在Windows和Linux中均可正常工作。

我现在开始使用NUnit来测试我的代码,主要是因为我需要测试代码是否在
Windows也将在linux中工作。
我的NUnit测试在Windows下运行良好,但在Linux下运行不佳。

这是我的Windows环境:


  NUnit版本2.5.1.9189版权(C)
  2002-2009查理·普尔(Charlie Poole)。版权(C)
  2002-2004年James W.Newkirk,Michael C.
  版权所有(C)2000-2002 Philip Craig。
  版权所有。
  
  运行时环境-操作系统版本:
  Microsoft Windows NT 5.1.2600服务
  CLR版本:2.0.50727.3053(Net
  2.0.50727.3053)


这是我的Linux环境,出现错误(库是我的应用程序名称):


  NUnit版本2.4.8版权(C)
  2002-2007查理·普尔(Charlie Poole)。版权(C)
  2002-2004年James W.Newkirk,Michael C.
  第二,Alexei A. Vorontsov。版权
  (C)2000-2002 Philip Craig。保留所有权利
  保留。
  
  运行时环境-操作系统版本:
  Unix 2.6.24.24 CLR版本:
  1.1.4322.2032(Mono 2.4.2.2)
  
  **(/usr/local/lib/mono/1.0/nunit-console.exe:4888):
  警告**:班级
  System.ComponentModel.INotifyPropertyChanged
  无法加载,无法在系统中使用,
  版本= 2.0.0.0,文化=中性,
  PublicKeyToken = b77a5c561934e089文件
  或程序集名称Library.Tests,
  版本= 1.0.0.0,文化=中性,
  PublicKeyToken = null,或其其中之一
  依赖项,未找到。


我不知道自己在做什么错。你有什么建议吗?似乎我需要包含System.ComponentModel.INotifyPropertyChanged,我已经搜索过
在互联网上查看它是否以单声道实现,但我找不到任何信息。
谢谢

最佳答案

您已经以某种方式启动了1.1 CLR-注意“ CLR版本:1.1.4322.2032(Mono 2.4.2.2)”

我不确定您是如何做到的,但是我很确定这就是问题所在……您到底在运行NUnit吗?我怀疑问题是您使用的是根据.NET 1.1编译的NUnit版本,因此Mono决定加载自己的CLR v1.1。假设您要显式调用mono二进制文件,请尝试指定--runtime参数,如下所示:

mono --runtime=2.0.50727 (whatever you previously had here)


编辑:要找出您拥有的运行时版本,请尝试以下Test.cs文件:

using System;

class Test
{
    static void Main()
    {
        Console.WriteLine(Environment.Version);
    }
}


然后编译并运行它:

$ gmcs Test.cs
$ mono Test.exe
2.0.50727.1433


您从底部得到什么版本?

关于c# - Nunit .net与Mono,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1178058/

10-15 11:40