我正在使用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 一样支持它(或者说,我有一段时间没有进行升级了)。过去一些运行程序会忽略类本身的属性,或干脆完全忽略它。现在大多数看来都已经解决了这个问题。
我建议你继续使用目前的方法。这更多的是意见问题,你不想重新调整整个测试方法。
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding