您认为在大型 .net 应用程序中管理单元测试的最佳方式是什么?是为解决方案中的每个单独项目添加一个测试项目,还是为其余项目中的所有测试添加一个大型测试项目?
例如,如果一个解决方案中有 10 个项目,是再增加 10 个测试项目还是一个大型测试项目就足以满足整个解决方案?
我知道模块化测试程序集提供了一些好处,但是使用测试类别可以实现非常相似的事情。许多项目的编译时间更长,但您可以排除此时不需要的项目,而如果您只有一个项目,则不能这样做,但编译时间会稍微短一些。
请在您的回答中概述每个选择的优点/缺点。
最佳答案
Phil Haack 写了一篇关于单元测试结构的好文章。这已成为我编写单元测试时的个人最佳实践。这是他文章的链接 http://haacked.com/archive/2012/01/02/structuring-unit-tests.aspx
至于你的问题,我总是会为单元测试创建一个单独的项目,并在其命名后附加 .UnitTests(我这样做是为了区分单元测试和集成测试)。例如,如果我的主项目是 Sample.WebUI,则测试将是 Sample.WebUI.UnitTests。
单元测试确实会增加编译时间,但我认为这是一个小问题。我正在研究一个包含 17 个项目(不包括单元测试)的解决方案,编译所有内容大约需要 50-60 秒。现在刚好够我把眼睛从显示器上移开,看看其他东西来换换口味了:-)
关于类别,如果您有一些日常构建需要测试才能快速完成,那么请使用它们并将它们与那些需要更长时间才能完成的测试(如集成测试)区分开来。此外,如果您使用的是 TFS,则使用类别可以帮助自动化和测试您的 checkin 。
关于c# - .NET 单元测试项目组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299979/