2011-03-15 56 views
5

我已经浏览了很多SO和Web,现在我正在努力寻找关于如何为单元测试设置C#项目的任何信息。在Visual C#Express 2010和.NET 4中使用NUnit

我开始使用NUnit主站点http://www.nunit.org,下载的内容包括一个GUI来运行你的单元测试,听起来像是薄荷。只有当我尝试将GUI指向我的.exe文件时,我立即发现一个错误,表示NUnit没有被设计为与此框架一起运行。这让我想到NUnit可能不适用于.NET 4.显然它确实有很多人在线似乎表示他们正在使用.net 4运行NUnit单元测试......当然,他们似乎并没有继续说出如何。

点击谷歌我发现似乎是NUnit开发的核心成员之一是一个叫查理普尔的家伙。我发现他在这里有一个启动板:https://launchpad.net/nunit-xtp。版本号比主要的NUnit站点更新。但是,当我下载该项目时,它只是没有GUI的NUnit框架的代码库和解决方案。有一个命令行亚军,但我真的需要一些可视化的东西。

我们确实拥有jetbrains teamcity作为BMS,所以我现在正在努力将NUnit集成到构建管道中。如果任何人都可以了解他们如何让NUnit与c#的快速版一起工作,那将会非常有用。

编辑:我有teamcity BMS现在运行测试,所以这部分不再是一个问题。但是,每次等待构建以查找NullException错误或其他内容都不会真正削减它。我必须让GUI亚军工作。我发现这个问题NUnit isn't running Visual Studio 2010 code,但即使这并没有为我修复它。该错误现在已更新为v4.0.30319,因此配置更改已生效。虽然相同的旧错误:(

回答

3

对不起,我有一个非常类似的问题: NUnit isn't running Visual Studio 2010 code

只有它没有提到的是NUnit有多个配置文件。我只是假定编辑nunit.exe.config就足够了。这确实更新了我在错误消息中看到的设置。但是,nunit gui runner必须使用其他多个.config文件之一。我只是通过他们所有,并添加了两个所需的设置。

请确保您运行正确的.exe。一个被称为“nunit.exe”,它似乎是正确的使用。另一个叫做“nunit-x86.exe”,如果你的应用程序是32位的,那么你必须运行这个。如果“nunit.exe”名称为“nunit64.exe”,我想我会更早注意到这一点。

您还必须确保检查CLR的版本号是否与您粘贴到这些配置文件中的设置相匹配。使用此链接可以计算出您当前的CLR版本号。 How do I find out what CLR i am using?我是Microsoft Visual C#2010 Express,我的CLR版本号是v4.0.30319

0

单元测试应该是在一个单独的程序集(类型类库)中,如果你指向该程序集的NUnit,它将运行,同样适用于命令行运行程序(这是正常使用在自动构建过程)。

+0

是的,我尝试过。我在同一个解决方案中的单独项目中进行了测试。如果我尝试使用nunit.exe打开.dll,则会出现相同的错误。 “您可能试图加载使用较新版本的CLR构建的程序集,而不是NUnit当前运行的版本(2.0。50727)或尝试将64位程序集加载到32位进程中。“ – DrLazer 2011-03-15 12:19:12

+0

您必须使用.net 4.0测试运行器,您目前使用的是.net 2.0版本,您使用的是哪种版本的NUnit?在文件 - >选择运行时选择4.0运行时? – Femaref 2011-03-15 13:04:02

+0

是的!文件 - >。净4.0,文件 - >打开项目.....同样的错误我认为错误的数字可能是一个CLR版本号 – DrLazer 2011-03-15 13:39:10

0

默认NUnit的发行版包括一个GUI转轮称为“nunit.exe”。如果使用它,设置我的调试目标上我的测试组件具有适当的配置以加载GUI转轮。

+0

嗨Ritch感谢你的回复,你能否详细解释一下这个答案,我不确定我是否知道你的意思是“调试目标”。 – DrLazer 2011-03-15 12:38:13

相关问题