C# .NET 4.0测试框架是什么?

3
如果我没记错的话,NUnit是单元测试的事实标准,但我刚刚下载了它,编写了一个简单的测试,然后显然我必须启动GUI并加载我的.exe程序集,但这失败了。
我尝试编辑...
C:\Program Files (x86)\NUnit 2.5.7\bin\net-2.0\nunit.exe.config

此问题所建议的那样,但也无济于事,所以我尝试下载nunit源代码并在vs2010中编译,但它甚至无法编译。说找不到punit.framework.dll那个解决方案说“不包含AllTestsExecuted的定义”,所以我有点沮丧。你会想有一个易于使用和运行的框架适用于.net 4,不是吗?
所以我的问题是,如何使NUnit工作,或者是否有另一种框架可以减少我的痛苦?

当你说它“失败”时,你具体指的是什么?出现了什么错误信息? - Nobody
NUnit通常与.NET 4.0无任何问题配合使用。您是否在64位操作系统上运行?如果exe是为x86编译的,并且您尝试运行64位版本的NUnit,则它将拒绝加载您的程序集。 - Jakob Christensen
2
ReSharper拥有出色的NUnit集成和在VS中运行单元测试等功能。 - Kirk Woll
6个回答

4

您不必使用NUnit GUI运行测试。您可以在Visual Studio中使用TestDriven.NET。此外,如果您正在使用Resharper,则可以使用它的单元测试运行器来运行NUnit。


就是 ReSharper!我有它,但没有安装...以前没有感觉需要它(不过现在需要了)。 - mpen

2
如果您没有进行任何非常规的操作,我建议使用Microsoft的单元测试框架。我发现它与VS集成太容易了,甚至不用担心NUnit。我同意NUnit似乎是事实上的标准,但如果您想要快速简便的东西,那么在我看来,微软的方法对于典型的Visual Studio程序员来说是最容易的。

我在“添加引用 > .NET”下没有看到“Microsoft.VisualStudio.TestTools.UnitTesting”...它在哪里? - mpen
对于.NET 4,您实际上使用位于C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \ Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll的Microsoft.VisualStudio.QualityTools.UnitTestFramework。最简单的方法是添加一个新项目,其中包含仅测试项目模板的“测试”子类别。 - Steve Danner

1

我不是C#程序员(幸运的是;-)),但我听说xUnit很不错。测试可以以几乎任何你想要的方式运行(命令行、GUI、Visual Studio集成等等),而且它看起来相当简单易用。


1

对于 NUnit 的 GUI 测试运行器,请确保您选择了正确的框架版本。它在“文件”菜单中。如果您的测试或任何依赖项是 32 位,请确保您正在运行测试运行器的 32 位版本。

Testdriven.net 是一个更好的测试运行器,但有时我也喜欢使用 NUnit 的 GUI 运行器。


我只看到“新建”,“打开”和“退出”。其他所有内容都被置灰。考虑到“打开”部分失败,我甚至没有机会选择运行时。 - mpen
听起来像是x86/x64不匹配,虽然这种情况我已经很久没遇到了,不确定它的表现形式。 - Frank Schwieterman
是的,可能可以。NUnit 可以在 64 位模式下运行吗? - mpen
有不同的二进制文件。nunit.exe 适用于64位,nunit-x86.exe 适用于32位。 - Frank Schwieterman

0

NUnit实际上非常简单易用,所以我认为更有可能是您在某个地方犯了错误,而不是软件的问题。

确保您遵循此指南

  • 确保您在正确的位置使用了[TestFixture]和[Test]属性,并引用了所有相关程序集。
  • 确保您在NUnit GUI中加载了正确的dll。

如果GUI出现问题,您可以使用Resharper的单元测试功能。


当我尝试加载程序集时,GUI会抛出错误。这是我遵循的指南。 - mpen

0
如果您使用的是Visual Studio 2010,那么您可以使用MSTest。只需点击CTRL + ALT + R,它就会运行您的测试并在Visual Studio中显示结果。
如果我没有记错的话,这个相同的测试运行器也适用于NUnit。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接