在.NET中,您应该将单元测试项目与其余解决方案放在一起吗?或者是否应该有一个包含所有测试项目的测试解决方案?
我们的代码库解决方案中包含所有测试项目......看起来有点麻烦。
你通常做什么?
答案 0 :(得分:7)
在我们目前的项目中,我们决定将所有单元测试放在单独的项目中。应用程序代码和测试都在同一个解决方案中,但至少我们可以构建(和部署)没有单元测试代码的版本。
这方面的缺点 - 远远是因为有时你的单元测试无法到达应用程序代码的某些成员(受保护和内部),但这通常会让我们发现我们的设计可以改进。
我想我应该指出一个类似的帖子Here,并在相同/相似的主题上提供更多答案。
答案 1 :(得分:2)
我一直把它们作为解决方案的一部分 - 毕竟它们是解决方案的一部分。您可以使用多种解决方案来查看项目的不同方法,因此在某些情况下您可能需要创建无测试解决方案。
答案 2 :(得分:1)
我们的测试代码没有发货,但它们是整个解决方案的一部分。我们的构建器分离出测试组件和核心组件。从解决方案管理的角度来看,似乎有140多个项目的解决方案势不可挡。
答案 3 :(得分:1)
我们总是在同一解决方案中使用单独的项目。
这意味着我们可以确定(使用引用)单元测试代码也测试我们的显式引用(而不是隐式地获取某些东西的可见性,因为它在同一个程序集中 - 例如“Internal”)< / p>
答案 4 :(得分:1)
通常我会在应用程序解决方案中将单元测试放在他们自己的项目和集成测试中。
我工作的地方正在考虑将网络测试放在一个单独的解决方案中。我们计划与QA团队共享Web测试创作,我们不希望这些测试成为构建责任。
答案 5 :(得分:0)
我不使用.NET,但是当我开发任何类型的测试用例时,我会将它们与其余代码隔离开来,以便我可以在没有测试的情况下部署应用程序。用户不需要,甚至不需要那些东西。
答案 6 :(得分:0)
查看项目的设计。如果它靠近MVC布局或其中一个替代方案,则应该具有不同级别的不同组件。为每个设计级别制作一个测试子组件。
我们的测试项目通常代替创建EXE的项目。我们的EXE项目是一个瘦shell,它将事件和信息传递给一个装满控制器类的程序集,控制器类具有大多数人放入EXE项目的代码。这允许测试项目假装为正常测试过程的90%的EXE。
我们仍在为实际测试用例制定最佳安排。现在我们有几个主要级别的框架实用程序,Applicaiton对象,UI框架,命令,UI控制器和EXE。除了EXE(手动测试)之外,我们为每个级别都有一个程序集。编辑程序集时,我们加载该级别的测试程序集。当我们需要做一些触及每个级别的事情时,我们必须加载所有的测试程序集。
在我们的一键构建过程中,我们运行测试项目exe。 (我们有一个单独的实用程序)。