9

我正在使用 NUnit 来测试我的 C# 代码,并且到目前为止,我一直将单元测试(快速运行的测试)和集成测试(运行时间更长的测试)分开,并保存在单独的项目文件中。我使用 NUnit 进行单元测试和集成测试。我刚刚注意到 NUnit 提供的category 属性,以便可以对测试进行分类。这就引出了一个问题,我应该将它们混合在一起并简单地使用类别属性来区分它们吗?

4

6 回答 6

9

如果分开它们不是太困难,现在就这样做

单元测试应该尽早并经常运行(例如,每次更改某些内容、签入前、签入后),并且应该在短时间内完成。

集成测试应定期(例如每天)运行,但可能需要大量时间和资源才能完成

因此最好将它们分开

于 2008-12-16T16:07:31.793 回答
2

如果可能,将它们分开,因为集成测试通常比 UnitTests 花费更长的时间。也许你的项目增长了,你最终得到了很多测试,所有这些都需要很短的时间——除了集成测试——你想尽可能频繁地运行你的单元测试......

于 2008-12-16T16:10:20.277 回答
1

我发现使用单独的项目进行单元测试和集成测试往往会在项目中创建太多顶级工件。即使我们是 TDD 和所有,我仍然认为正在开发的代码应该至少值得我的项目结构顶层的一半。

于 2008-12-16T16:08:05.037 回答
0

我会继续使用您当前使用的任何方法。这更像是一种意见,您不希望重新调整您的整个测试方法。

于 2008-12-16T16:03:24.783 回答
0

我认为这并不重要,但将它们分开听起来是一个更好的主意,因为隔离、自动化将变得如此容易。从可用性的角度来看,类别功能很好,但不是那么好。

于 2008-12-16T16:15:42.993 回答
0

[Category] ​​背后的最初动机是解决您提到的问题。它还旨在创建更广泛的测试套件,但这就是您正在做的事情。

请注意[类别]。并不是所有的测试运行者都支持它,就像 NUnit gui 一样(或者确实,我有一段时间没有升级了)。过去,如果属性位于类本身上,一些跑步者会忽略该属性,或者将其全部忽略。大多数现在似乎工作。

于 2008-12-19T00:53:46.690 回答