在.NET(或任何其他语言或平台)中命名测试程序集的最佳约定是什么?
我主要分为这些选项(请提供其他人!):
Company.Website - 项目
Company.Website.Tests
要么
公司网站
Company.WebsiteTests
第一个解决方案的问题在于它看起来像.Tests是网站的子命名空间,而它们在我的脑海中确实更加平行.当一个新的子命名空间发挥作用时会发生什么,例如Company.Website.Controls,我应该在哪里放置该命名空间的测试?
也许它应该是:Tests.Company.Website和Tests.Company.Website.Controls,等等.
我会去的
* Company.Website - the project * Company.Website.Tests
简短的理由和答案很简单,测试和项目在代码中链接,因此它应该共享命名空间.
如果您想要在解决方案中拆分代码并进行测试,那么无论如何都可以使用该选项.例如,您可以设置解决方案
-Code文件夹
公司网站
- 测试文件夹
Company.Website.Tests
我个人会去
Company.Tests.Website
这样,你就可以在其中拥有一个通用的测试命名空间和项目,遵循与实际项目相同的结构.
我实际上有一个备用并行根.
Tests.Company.Website
当你有新的子命名空间时,它可以很好地消除歧义.
我是构建测试命名空间的忠实粉丝,如下所示:
Company.Tests.Website.xxx
Company.Tests.Website.Controls
像你一样,我认为测试是主代码的并行命名空间结构,这为你提供了这些.它还具有以下优点:由于命名空间仍以您的公司名称开头,因此您不应与第三方库发生任何命名冲突