我有一个包含超过270个项目的解决方案,其中包括各种文件夹等。想象一下,每个项目都有单元测试,你认为最好的组织方式是什么?每个项目应该将单元测试放在附近,还是我应该为它们创建特别的文件夹,甚至只为单元测试创建不同的解决方案。
对于这样规模庞大的解决方案/项目,您如何组织它们?
我有一个包含超过270个项目的解决方案,其中包括各种文件夹等。想象一下,每个项目都有单元测试,你认为最好的组织方式是什么?每个项目应该将单元测试放在附近,还是我应该为它们创建特别的文件夹,甚至只为单元测试创建不同的解决方案。
对于这样规模庞大的解决方案/项目,您如何组织它们?
一份包含270个项目的单一解决方案听起来就像是一个问题。打开VS需要多长时间? :) (说真的,您可以将一些项目合并在一起或拆分解决方案吗?)
通常,我会将单元测试放在它们自己的项目中,但在同一个解决方案中。在项目中,镜像生产项目的文件夹/命名空间结构。看看Noda Time如何组织作为一个例子。我曾经在一些公司工作过,他们把单元测试保留在另一个解决方案中,但那真的很痛苦。(他们有一个还算不错的理由:测试使用的是VS2005版本,而生产代码则是2003版本。)
有时,我会将测试项目的默认命名空间设置为与生产项目相同-在Java中比.NET更重要(因为它让您可以获取软件包访问成员),但它仍然很有帮助,因为这意味着您要测试的类不需要被导入。
从内置的Visual Studio测试框架切换到Gallio后,我开始将我的测试放在同一项目中的Test文件夹中。对于小助手类,我甚至可以在同一文件夹中定义一个单元测试。只要你的命名空间相对较小(我不喜欢有大量的命名空间文件夹),这对我来说并不会增加太多杂乱的东西。无论如何,当这些类存在一段时间并且稳定后,您可以将这些单元测试移动到单独的文件夹中。