【问题标题】:How do I set up NUnit to run my project's unit tests?如何设置 NUnit 来运行我的项目的单元测试?
【发布时间】:2011-04-28 03:34:28
【问题描述】:

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

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

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

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

【问题讨论】:

  • 如果您安装了 ReSharper,您只需在设置完所有内容后右键单击您的测试项目即可运行所有单元测试。

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


【解决方案1】:
  1. 单元测试应该在同一解决方案下的单独测试项目中进行。
  2. 是的,让它成为一个类库项目。如果你想在 NUnit 中运行测试,this tutorial can show you how

关于您的评论:当您将 NUnit.exe 设置为测试类库(包含您的单元测试的那个)的默认启动可执行文件时,您告诉 NUnit 您要测试哪个 DLL;在第一次之后,它随后会记住您正在针对哪个项目运行测试。

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

再次,我列出的教程涵盖了所有这些。

【讨论】:

  • 谢谢!如果使用另一个测试项目对类库进行测试,测试项目如何知道它对类库进行测试?我是否需要从测试项目中引用类库项目,以确保测试项目正在测试哪些项目?
  • 这个和 3. 不,没有任何变化 - 您的可执行文件可以以与您的库完全相同的方式进行测试。是的,您的测试项目需要引用它正在测试的项目。
【解决方案2】:

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

【讨论】:

  • 谢谢!如果使用另一个测试项目对类库进行测试,测试项目如何知道它对类库进行测试?我是否需要从测试项目中引用类库项目,以确保测试项目正在测试哪些项目?
  • 你需要在代码中用using语句引用被测对象的命名空间,但只要被测项目和被测试项目在同一个解决方案中,你应该可以无需添加实际引用即可查看其他类;编译器将为您创建解决方案内引用。
【解决方案3】:

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

【讨论】:

  • 谢谢!如果使用另一个测试项目对类库进行测试,测试项目如何知道它对类库进行测试?我是否需要从测试项目中引用类库项目,以确保测试项目正在测试哪些项目?
【解决方案4】:

回复 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,但在学习的同时尝试一些不同的选项是件好事。

【讨论】:

    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多