在使用MonoDevelop的OSX上,从终端/命令行运行NUnit测试

在使用MonoDevelop的OSX上,从终端/命令行运行NUnit测试,mono,nunit,monodevelop,Mono,Nunit,Monodevelop,考虑到我在OSX上的MonoDevelop(MD)(3.0.4.6)中创建了一个名为TryTesting的C#NUnit测试库,我应该如何从终端/命令行运行这些测试(以便我可以将它们添加到自动构建中) 我知道一般公式是: nunit-console .../TryTesting/bin/Debug/TryTesting.dll 或 然而,考虑到安装MonoDevelop时创建的环境,仅此一点是不够的 我得到以下输出&错误: NUnit version 2.4.8 Copyright (C) 2

考虑到我在OSX上的MonoDevelop(MD)(3.0.4.6)中创建了一个名为
TryTesting
的C#NUnit测试库,我应该如何从终端/命令行运行这些测试(以便我可以将它们添加到自动构建中)

我知道一般公式是:

nunit-console .../TryTesting/bin/Debug/TryTesting.dll

然而,考虑到安装MonoDevelop时创建的环境,仅此一点是不够的

我得到以下输出&错误:

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: Unix 12.1.0.0
CLR Version: 2.0.50727.1433 ( 2.10.9 (tarball Mon May  7 20:25:51 EDT 2012) )

Missing method .ctor in assembly /private/var/folders/r6/wqmfjz8142z0z9vcg_7k9y140000gn/T/nunit20/ShadowCopyCache/3688_634830482326369170/Tests/assembly/shadow/52c5f76b/6c545c94_3e91abff_00000001/TryTesting.dll, type NUnit.Framework.TestFixtureAttribute
Can't find custom attr constructor image: /private/var/folders/r6/wqmfjz8142z0z9vcg_7k9y140000gn/T/nunit20/ShadowCopyCache/3688_634830482326369170/Tests/assembly/shadow/52c5f76b/6c545c94_3e91abff_00000001/TryTesting.dll mtoken: 0x0a000003
Could not load file or assembly 'nunit.framework, Version=2.6.0.12051, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77' or one of its dependencies.
经过实验,这个问题似乎是由/usr/bin和MD之间的nunit版本不匹配引起的。如果我下载最新的nunit二进制文件并替换项目中的nunit.framework引用以指向下载的副本,那么我可以使用下载的nunit-console.exe使其运行

因此,问题可能是:

  • 我是否应该删除对nunit.framework的自动引用,并在源代码树中包含我自己的nunit发行版
  • 或者,MonoDevelop是否有我应该调用的匹配版本的nunit控制台

    • 我也遇到了这个问题。然后我升级了NUnit Dll的版本。最后,我可以使用它。 请参阅以下链接:


      谢谢。

      在多个环境中运行单元测试经验丰富后,我建议不要参考MonoDevelop(或Xamarin Studio)附带的
      nunit.framework
      。如果您只在该IDE中运行测试,那么就可以了。但是,如果您从命令行、其他环境或在生成框上运行测试,那么您应该可以控制NUnit的版本

      因此,如果从“新建项目”对话框创建新的NUnit库,则应删除提供的
      NUnit.framework
      引用,并将其替换为您自己的

      还要注意,NUnit测试运行程序对程序集版本非常敏感。因此,您应该将所有NUnit二进制文件保存在源代码树中。(NUnit-2.6.1/料仓重量为7 MB)

      还值得注意的是,还有其他运行测试的方法,例如,将对NUnit版本敏感

      因此,将NUnit 2.6.1*下载到my solution目录下的packages目录后,命令如下:

      mono packages/NUnit-2.6.1/bin/nunit-console.exe TryTesting/bin/Debug/TryTesting.dll
      

      *脚注:由于NotImplementedException,我无法使用NUnit 2.6.2。

      我遇到了类似的问题

      我删除了显式引用(.dll),并通过Nuget包安装了NUnit


      适用于我。

      在OSX monodevelop上,它将从:/Applications/monodevelop.app/Contents/MacOS/lib/monodevelop/AddIns/nunit/加载nunit程序集,然后使用RemoteTestRunner从代码运行测试,因此它调用nunit-console.exe,而不需要。我建议您只更新对NUnitI最新版本的引用。我想知道最新的推荐是什么,因为我在
      packages/NUnit.2.6.4/
      中没有
      bin/
      目录。我通过Nuget添加了
      NUnit.Runners
      包,然后可以使用
      packages/NUnit.Runners.2.6.4/tools/NUnit console.exe
      mono packages/NUnit-2.6.1/bin/nunit-console.exe TryTesting/bin/Debug/TryTesting.dll