15

在 .NET 中,您应该将单元测试项目与解决方案的其余部分放在一起吗?还是应该有一个包含所有测试项目的测试解决方案?

我们的代码库解决方案包含所有测试项目……这似乎有点麻烦。

你平时做些什么?

4

7 回答 7

8

在我们当前的项目中,我们决定将所有单元测试放在单独的项目中。应用程序代码和测试在同一个解决方案中,但至少我们可以构建(和部署)一个没有单元测试代码的版本。

到目前为止,这样做的缺点是有时您的单元测试无法到达应用程序代码的某些成员(受保护的和内部的),但这通常会导致我们发现我们的设计可以改进。

而且我想我应该在此处指出一个类似的线程,并提供有关相同/相似主题的更多答案。

于 2008-11-06T18:23:04.567 回答
2

我一直将它们作为解决方案的一部分——毕竟,它们是解决方案的一部分。您可以有多种解决方案,但可以使用不同的方法来查看您的项目,因此您可能希望在某些情况下创建无测试解决方案。

于 2008-11-06T18:22:13.227 回答
1

我们的测试代码没有发布,但它们是整个解决方案的一部分。我们的构建器分离出测试组件和核心组件。从解决方案管理的角度来看,一个包含 140 多个项目的解决方案似乎是压倒性的。

于 2008-11-06T18:25:41.270 回答
1

我们总是在同一个解决方案中使用一个单独的项目。

这意味着我们可以确定(使用引用)单元测试代码也测试我们的显式引用(而不是隐式地获取某些东西的可见性,因为它在同一个程序集中——例如“内部”)

于 2008-11-06T18:27:03.047 回答
1

通常我将单元测试放在他们自己的项目中,并将集成测试放在他们自己的应用程序解决方案中的项目中。

在我工作的地方,我们正在考虑将 Web 测试放在一个单独的解决方案中。我们计划与 QA 团队共享 Web 测试创作,我们不希望这些测试成为构建责任。

于 2008-11-06T19:28:15.950 回答
0

我不使用 .NET,但是当我开发任何类型的测试用例时,我会将它们与其余代码隔离开来,这样我就可以在没有测试的情况下部署应用程序。用户不需要,甚至不需要这些东西。

于 2008-11-06T18:23:23.647 回答
0

看看你的项目的设计。如果它靠近 MVC 布局或其替代方案之一,那么您应该有不同级别的不同程序集。为设计的每个级别制作一个测试子组件。

我们的测试项目通常代替创建 EXE 的项目运行。我们的 EXE 项目是一个薄壳,它将事件和信息传递给一个程序集,该程序集充满了控制器类,其中包含大多数人放入 EXE 项目的代码。这允许测试项目在 90% 的正常测试过程中伪装成 EXE。

我们仍在为实际测试用例制定最佳安排。现在我们有几个主要级别的框架实用程序、应用程序对象、UI 框架、命令、UI 控制器和 EXE。除了 EXE(手动测试)之外,每个级别都有一个程序集。当我们编辑一个程序集时,我们会加载该级别的测试程序集。当我们需要做一些涉及每个级别的事情时,我们必须加载所有测试程序集。

在我们的一键构建过程中,我们运行测试项目 exe。(我们为此有一个单独的实用程序)。

于 2008-11-06T18:35:55.850 回答