C# 在Windows上的Mono上运行NUnit测试
我是Mono新手,我希望能够在Mono上运行测试。我在VisualStudio2012中创建了一个简单的单元测试项目,并根据.NET4.5进行了编译C# 在Windows上的Mono上运行NUnit测试,c#,windows,unit-testing,mono,nunit,C#,Windows,Unit Testing,Mono,Nunit,我是Mono新手,我希望能够在Mono上运行测试。我在VisualStudio2012中创建了一个简单的单元测试项目,并根据.NET4.5进行了编译 using NUnit.Framework; namespace ClassLibrary2.Tests { [TestFixture] public class Class1Tests { [Test] public void MyTest() { v
using NUnit.Framework;
namespace ClassLibrary2.Tests
{
[TestFixture]
public class Class1Tests
{
[Test]
public void MyTest()
{
var a = "andsdsaj";
var b = "fjkfjkdjfk";
Assert.AreEqual(a, b);
}
}
}
然后我尝试从Mono命令提示符执行它:
C:\Program Files (x86)\Mono>nunit-console "C:\Users\boris.m\Documents\Visual Studio 2012\Projects\ClassLibrary2.Tests\bin\Debug\ClassLibrary2.Tests.dll"
我得到以下错误:
C:\Program Files (x86)\Mono>nunit-console "C:\Users\boris.m\Documents\Visual Stu
dio 2012\Projects\ClassLibrary2.Tests\bin\Debug\ClassLibrary2.Tests.dll"
NUnit version 2.4.8
Copyright (C) 2002-2007 Charlie Poole.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
Copyright (C) 2000-2002 Philip Craig.
All Rights Reserved.
Runtime Environment -
OS Version: Microsoft Windows NT 6.1.7601.65536 Service Pack 1
CLR Version: 2.0.50727.1433 ( 3.12.0 (Visual Studio built mono) )
Unhandled Exception:
System.ArgumentException: path
at System.IO.FileSystemInfo.CheckPath (System.String path) [0x00000] in <filen
ame unknown>:0
at System.IO.DirectoryInfo..ctor (System.String path, Boolean simpleOriginalPa
th) [0x00000] in <filename unknown>:0
at System.IO.DirectoryInfo..ctor (System.String path) [0x00000] in <filename u
nknown>:0
at (wrapper remoting-invoke-with-check) System.IO.DirectoryInfo:.ctor (string)
at NUnit.Util.AddinManager.RegisterAddins () [0x00000] in <filename unknown>:0
at NUnit.Util.AddinManager.InitializeService () [0x00000] in <filename unknown
>:0
at NUnit.Util.ServiceManager.InitializeServices () [0x00000] in <filename unkn
own>:0
at NUnit.ConsoleRunner.Runner.Main (System.String[] args) [0x00000] in <filena
me unknown>:0
at NUnit.ConsoleRunner.Class1.Main (System.String[] args) [0x00000] in <filena
me unknown>:0
C:\ProgramFiles(x86)\Mono>nunit控制台“C:\Users\boris.m\Documents\Visual Stu
dio 2012\Projects\ClassLibrary2.Tests\bin\Debug\ClassLibrary2.Tests.dll“
NUnit版本2.4.8
版权所有(C)2002-2007 Charlie Poole。
版权所有(C)2002-2004詹姆斯·W·纽柯克,迈克尔·C·二,阿列克谢·A·沃龙佐夫。
版权所有(C)2000-2002菲利普·克雷格。
版权所有。
运行时环境-
操作系统版本:Microsoft Windows NT 6.1.7601.65536 Service Pack 1
CLR版本:2.0.50727.1433(3.12.0(Visual Studio内置单声道))
未处理的异常:
System.ArgumentException:路径
在0中的System.IO.FileSystemInfo.CheckPath(System.String路径)[0x00000]处
位于System.IO.DirectoryInfo..ctor(System.String路径,布尔simpleOriginalPa
th)[0x00000]英寸:0
位于:0中的System.IO.DirectoryInfo..ctor(System.String路径)[0x00000]处
在(包装器远程处理检查调用)System.IO.DirectoryInfo:.ctor(字符串)
位于:0中的NUnit.Util.AddinManager.RegisterAddins()[0x00000]
在0中的NUnit.Util.AddinManager.InitializeService()[0x00000]处
在:0中的NUnit.Util.ServiceManager.InitializeServices()[0x00000]处
在0中的NUnit.ConsoleRunner.Runner.Main(System.String[]args)[0x00000]处
在0中的NUnit.ConsoleRunner.Class1.Main(System.String[]args)[0x00000]处
看起来Mono 3.12中的Uri类已更改,因此NUnit 2.4.8没有返回NUnit程序集的正确路径。Windows上的Mono 3.3工作正常,没有任何错误
我打开了一个关于这个问题的bug
它似乎可以在Windows上与Mono 3.12配合使用。下载zip文件,然后解压缩。您可以使用类似以下命令行运行测试:
mono --runtime=v4.0 nunit-console.exe c:\path\to\tests\MyTests.dll
这似乎在运行测试,但nunit-console.exe似乎从未关闭,因此您必须使用ctrl+C来停止它。最新版本似乎是3.12.0,我错了吗?在Mono上运行NUnit测试有什么解决方法吗?是的,Windows上最新的Mono版本是3.12.0。可以在Mono上使用NUnit 2.6.4运行测试。测试正在运行,但nunit控制台似乎挂起了。谢谢,老兄!让我们等待bug修复这个bug在Windows上的Mono 4.0中已经修复。