English 中文(简体)
我应该将单元测试和集成测试混合在同一个项目中吗?
原标题:
  • 时间:2008-12-16 16:01:02
  •  标签:

我正在使用NUnit测试我的C#代码,并迄今为止一直将单元测试(运行较快)和集成测试(运行时间较长)分别放在不同的项目文件中。我使用NUnit来执行单元测试和集成测试。我刚刚注意到NUnit提供的类别属性,这样就可以对测试进行分类。这引出了一个问题,我是否应该将它们混合在一起并仅使用类别属性来区分它们?

问题回答

如果现在分离它们不太困难,请这样做。

单元测试应该尽早而频繁地运行(例如,每次更改某些内容之前,在提交之前,在提交之后),并且应该在短时间内完成。

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

因此最好把它们分开。

seperate them if possible, because integration tests normally take much longer than UnitTests. Maybe your project grows and you end up with very much tests, all which take a short amount of time - except the integration tests - and you want to run your UnitTests as often as possible...

我发现将单元测试和集成测试分别作为不同的项目,往往会在项目中创建太多顶层的项目建构物。即便我们是 TDD 测试驱动开发的,我仍然认为,正在开发的代码应该至少占据我的项目结构一半的顶层位置。

我不认为这真的很重要,但将它们分开听起来像是更好的主意,因为隔离、自动化会更容易。类别特征很好,但从可用性的角度来看不是那么好。

[类别]的原始动机是为了解决您提到的问题。它也旨在创建更广泛的测试套件,但这有点像您正在做的。

请谨慎使用 [Category]。并非所有测试运行程序都像 NUnit GUI 一样支持它(或者说,我有一段时间没有进行升级了)。过去一些运行程序会忽略类本身的属性,或干脆完全忽略它。现在大多数看来都已经解决了这个问题。

我建议你继续使用目前的方法。这更多的是意见问题,你不想重新调整整个测试方法。





相关问题
热门标签