C# 为大型解决方案组织单元测试项目
我需要为一个有很多项目的现有解决方案添加单元测试。构建这个项目需要很长时间,所以我决定为单元测试项目创建另一个单独的解决方案。我不知道什么更好:引用dll或在单元测试解决方案中包含我要测试的现有项目C# 为大型解决方案组织单元测试项目,c#,asp.net,unit-testing,C#,Asp.net,Unit Testing,我需要为一个有很多项目的现有解决方案添加单元测试。构建这个项目需要很长时间,所以我决定为单元测试项目创建另一个单独的解决方案。我不知道什么更好:引用dll或在单元测试解决方案中包含我要测试的现有项目 我应该如何组织我的测试用例,为什么?请根据您自己的直接经验回答。我强烈建议您将要测试的项目包括在解决方案中,并参考该项目。 在一个大项目中,我只引用了DLL,在测试旧版本DLL的单元测试中遇到了很多问题,因为构建单元测试项目不会自动触发it测试项目的构建。正如Daniel所说,引用项目将是我的首选方
我应该如何组织我的测试用例,为什么?请根据您自己的直接经验回答。我强烈建议您将要测试的项目包括在解决方案中,并参考该项目。
在一个大项目中,我只引用了DLL,在测试旧版本DLL的单元测试中遇到了很多问题,因为构建单元测试项目不会自动触发it测试项目的构建。正如Daniel所说,引用项目将是我的首选方法
如果想改善本地构建所需的时间,请考虑使用扩展来控制哪些项目是加载的,哪些不是。当您只处理一个非常大的解决方案的子集时,它确实有助于缩短构建时间。
Serghei,正如Daniel Hilgarth所指出的,建议在主解决方案中包含单元测试项目。此外,建议在开发项目和单元测试项目之间建立1:1的关系 话虽如此,值得注意的是,解决方案中的项目数量以非线性方式增加了构建时间 我最近参与的一个项目在解决方案中有97个项目!构建时间超过10分钟。通过将代码整合到更少的项目中,对于相同的LOC,构建时间缩短到2分钟 从长远来看,以“正确性”为代价而损失的开发人员生产率可能非常昂贵。这不仅是构建时间的损失,而且是由于注意力不集中、代表开发人员的烦恼等造成的时间损失。。。有多少次你个人被一个缓慢的构建/计算机/IDE停止,最终浏览网页,在你意识到“哦,构建完成了!”之前浪费了10分钟。我的处境如此糟糕,以至于构建之间的时间都花在了浏览求职网站上;-) 作为大型解决方案中的一个变通方法,我已经这样做了- 为轻量级开发人员创建一个解决方案(仅限开发人员项目)
- 为相同的开发项目和单元测试创建另一个李>
- 在开发时保持两个Visual Studio实例都处于打开状态。通过这种方式,我可以获得一个较短的构建/运行/调试周期来进行开发,但可以随时检查测试(编译、执行)的状态李>
- 当需要签入时,我确保dev+单元测试项目构建、测试通过并签入
致以最诚挚的问候,谢谢您的回答,正如我在单元测试项目解决方案中所理解的那样,我应该包括来自其他解决方案的项目,我想测试它是否正确?是的。它还意味着包括您要测试的项目引用的所有项目,等等。非常感谢您提供Solution Load Manager。