我应该在同一个项目中混合我的UnitTests和我的Integration测试吗?

时间:2008-12-16 16:01:02

标签: unit-testing nunit integration-testing

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

6 个答案:

答案 0 :(得分:7)

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

单元测试应该尽早并经常运行(例如,每次更改时,在办理登机手续,办理登机手续后),并且应在短时间内完成。

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

因此最好将它们分开

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

我会继续使用你目前正在使用的任何方法。这更像是一种观点,你不希望重新使用整个测试方法。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

[类别]背后的原始动机是解决你提到的问题。它还打算创建更广泛的测试套件,但这就是你正在做的事情。

请注意[类别]。并非所有测试跑步者都支持它,就像NUnit gui一样(或者我没有升级过一段时间)。在过去,一些跑步者会忽略该属性,如果它属于类本身或者只是忽略它们。大多数似乎现在都在工作。