【问题标题】:Where should test projects be placed?测试项目应该放在哪里?
【发布时间】:2023-04-09 10:31:01
【问题描述】:

我们有几个使用名为 DogService 的项目的解决方案,他们将其作为项目引用添加到解决方案中。

如果我想为 DogService 创建单元测试并将其命名为 DogService.Tests,我应该将该项目实际放置在哪里?

是否应将项目的单元测试包含在引用该项目的每个解决方案中?

【问题讨论】:

  • IMO,它们应该放在与 DogService 项目相同的解决方案中。仅引用 DogService.dll 的项目不应测试 DogService 项目本身。
  • @itsme86 多个解决方案都引用 DogService 作为项目参考,所有解决方案都应该获得测试项目吗?
  • 答案纯粹是基于意见的,但是由于您使用的是 project 引用并且能够更改代码,那么是的,您应该包含单元测试项目,所以您可以在代码更改时更新并运行单元测试。
  • 测试项目是否应该与 dogservice 项目位于同一物理目录中?
  • 物理位置无关紧要 - 通常我喜欢将它作为项目的同级文件夹,但 .sln 文件会为您解决这个问题,因此无论在哪里最有意义你:)

标签: c# .net visual-studio unit-testing nunit


【解决方案1】:

取决于您如何使用 DogService。但是,如果任何解决方案都可以对 dogservice 进行任何更改,那么每个解决方案都应该添加单元测试。一般来说,像

这样的结构化库
    /Lib
       /DogService
          /DogService
          /DogServiceTests

   /MainProject/...

这是经过优化的:-

https://github.com/ingydotnet/git-subrepo

此外,持续构建工具随后将其构建为拉取请求的一部分并运行所有库的测试,以便随后将其合并到每个库的主库中。

或者,使用私有 nuget 存储库将您的库作为预构建的程序集分发。如果您这样做,则无需在每个解决方案中进行测试。唯一的缺点是跨多个库进行更改可能会更麻烦

【讨论】:

  • 如果你确实使用了 gitsubrep,在这个确切的时间点,使用分支issue/142
猜你喜欢
  • 2014-02-04
  • 2010-10-23
  • 2013-05-18
  • 2012-07-31
  • 2010-09-15
  • 1970-01-01
  • 2017-05-13
  • 2023-03-13
  • 2010-12-06
相关资源
最近更新 更多