如何设置NUnit来运行项目的单元测试?

时间:2010-10-20 15:58:25

标签: c# .net visual-studio-2010 unit-testing nunit

我开始使用NUnit在.NET 4.0上使用Visual Studio 2010在C#中编写测试用例。我想使用NUnit来测试.dll(一个C#类库项目)的公共函数。如何设置NUnit以使用我的项目?

  1. 我应该将NUnit代码添加到同一个类库项目进行测试,还是应该在同一个NUnit测试用例的解决方案中添加单独的项目?哪种是最佳做法?

  2. 如果我需要为NUnit测试用例创建一个单独的项目,我应该将其作为类库项目还是可执行文件?如果我把它作为一个类库项目,我该如何运行它?

  3. 如果我需要针对可执行文件进行测试而不是类库项目,那么流程和/或项目是否有任何更改?

4 个答案:

答案 0 :(得分:15)

Re 2

通常,将[测试用例dll]与[业务逻辑dll]分开。您的业​​务逻辑DLL不应包含任何NUnit知识,以分离关注点并简化部署/维护。

您的测试用例dll应该包含对NUnit和业务逻辑dll的引用。

您无需共享命名空间。您可以通过修改业务逻辑dll的AssemblyInfo.cs文件以将内部暴露给测试用例dll,将业务逻辑dll的内部成员公开给测试用例dll。这使您可以在业务逻辑DLL中保留所需的可见性。

Re 3

您的测试用例应该进入dll(即类库项目)。您可以将其直接加载到NUnit的UI中,或者在集成环境中使用NUnit的控制台运行器来自动运行测试。

我是怎么做到的:

  • 打开测试用例类库项目 属性,调试选项卡
  • 设置为使用外部程序打开: 将此指向您的nunit.exe
  • 设置命令行参数 测试用例的确切名称dll: MyTests.dll
  • 工作目录:只需点击即可 省略号按钮,它会 预先选择你的测试dll输出 当前构建的目录 配置
  • 将测试项目设置为 默认启动项目中 解;这样,每当你打 F5(或“播放”按钮),NUnit会 及时更新您的测试 预装 - 非常方便 快。

祝你好运 - 也试试测试项目类型avl。在Visual Studio中,它与NUnit非常相似。我仍然更喜欢NUnit,但在学习它的同时尝试各种选择也很不错。

答案 1 :(得分:8)

  1. 单元测试应该在同一解决方案的单独测试项目中进行。
  2. 是的,把它变成一个类库项目。如果要在NUnit中运行测试this tutorial can show you how
  3. 关于您的评论:当您将NUnit.exe设置为测试类库的默认Start可执行文件(包含您的单元测试的那个)时,您告诉NUnit您要测试哪个DLL;在第一次之后,它将随后记住您正在运行测试的项目。

    您还希望确保单元测试库中有引用其他项目的引用。

    同样,我列出的教程经历了所有这些。

答案 2 :(得分:2)

2:您应该将所有NUnit测试放在同一解决方案中的单独项目中。构建项目构建测试,反之亦然,所以当你正在TDD这个项目时(你正在这样做,对吗?)你可以简单地运行测试,它将构建所需的一切。 3:类库。如果你使用NUnit,它不需要由Windows运行;你只需要使用测试运行器。

答案 3 :(得分:2)

我会为测试代码添加一个单独的测试项目,并从中引用NUnit和受测试的库。它应该是一个类库,它由NUnit测试运行器运行,例如nunit-console test_assembly.dll - 请参阅documentation