鉴于我TryTesting
在 OSX 上创建了一个名为 MonoDevelop(MD) (3.0.4.6) 的 C# NUnit 测试库,我应该如何从终端/命令行运行这些测试(以便我可以将它们添加到自动构建中)?
我知道一般公式是:
nunit-console .../TryTesting/bin/Debug/TryTesting.dll
或者
mono nunit-console.exe .../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-console?