Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Windows上的Mono上运行NUnit测试_C#_Windows_Unit Testing_Mono_Nunit - Fatal编程技术网

C# 在Windows上的Mono上运行NUnit测试

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

我是Mono新手,我希望能够在Mono上运行测试。我在VisualStudio2012中创建了一个简单的单元测试项目,并根据.NET4.5进行了编译

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中已经修复。