如何在一个解决方案中更好地组织多个项目及其各自的单元/集成测试?

时间:2010-11-06 01:45:22

标签: c# oop unit-testing testing

我正在做一个目前具有以下命名空间/包结构的AI项目:

alt text

我的想法是为每个模块进行一些单元/集成测试(可能不是所有模块都有。可能不会测试启动。)

这些“主”包中的每一个都在不同的物理文件中。我想知道你认为会更好的是什么:

  • 为每个物理文件X.dll提供X.Tests.dll
  • 测试具有大量测试的物理文件(似乎不是一个好主意)。
  • 在Breakthrough.dll,AI.GeneticAlgorithms中加入突破性测试AI.GeneticAlgorithms.dll等等。我有点喜欢这个解决方案,因为那时我不会让我的Visual Studio解决方案资源管理器与整套测试混乱项目。

谢谢!

2 个答案:

答案 0 :(得分:2)

我会为每个.dll都有一个Test.dll。 这是我以前的工作方式,我认为这是一个很好的方法。你现在在哪里测试。

正如Liam已经指出的那样,实现和测试不应该在同一个dll中。它不必要地增加了传递的dll的大小,你必须提供测试的所有依赖性(例如,单元测试框架,模拟等)。

答案 1 :(得分:1)

就个人而言,我会有一个项目/程序集用于启动,一个用于测试,一个用于其他所有项目。

多个项目的构建时间显着增加,因此项目越少越好。除非您当然需要能够单独部署不同的软件包。

测试通常不包含在他们正在测试的项目中,因为它要求程序集依赖于您正在使用的任何测试框架。