4

我有一个包含大约 18 个项目的视觉工作室解决方案。我想为这些项目编写单元测试(通过创建一个包含针对每个源项目的单元测试的测试项目)。

我应该使用包含所有测试项目的单独解决方案吗?或者我应该使用 Visual Studio 2008 的分区解决方案方法并为所有测试项目创建一个子解决方案?

4

1 回答 1

4

在我看来,将单元测试放在单独的解决方案中似乎会产生问题。本质上,单元测试必须能够引用它们正在测试的类型(类)。如果在单独的解决方案中,则意味着二元关联。这似乎非常“困难”。

因此,为了调查问题的原因,并希望提供一些帮助,这些是我将单元测试放在同一个解决方案中的原因:

  • 项目参考。我喜欢将单元测试项目命名为 .Tests,其中包含被测试类型的生产程序集的名称。这样它们在 VS 中彼此相邻出现(按字母顺序)。

  • 通过 TDD 开发,我需要在生产代码和单元测试之间快速切换。这是关于编写代码,而不是关于后期代码测试。

  • 我可以选择解决方案窗格顶部的解决方案节点并说“运行所有测试”(我使用 Resharper(.

  • 构建农场 (TeamCity) 始终对所有提交运行所有测试。将它们全部集中在一个解决方案中要容易得多。

当我写这篇文章时,我想知道为什么将它们放在另一个解决方案中。单元测试在具有生产代码的解决方案之外没有任何意义。

也许你可以解释你问这个问题的原因。你能看到他们在同一个解决方案中的问题吗?对我来说,18 个项目似乎并不多。我工作的解决方案还有更多……但是如果使用 Resharper(为什么不使用?),您的盒子中将需要足够的 RAM。

希望这个对你有帮助。

于 2012-12-11T10:12:42.827 回答