Configuration 测试应该在dotnet core的调试或发布配置中运行吗

Configuration 测试应该在dotnet core的调试或发布配置中运行吗,configuration,.net-core,buildconfiguration,Configuration,.net Core,Buildconfiguration,我使用的是DotnetCore2+,但问题可能更一般 我的CI管道当前如下所示: dotnet构建-c版本 dotnet测试 dotnet public-c发行版--无构建 对于测试步骤,它使用默认的Debug配置,因此它还必须使用Debugconfig构建应用程序 因此,我想知道,使用Debug而不是Release运行测试是否有任何优势,或者我是否应该简单地添加dotnet test-c Release?我相信可以通过比较“Debug”和“Release”之间的差异进行选择 在发布模式下:

我使用的是DotnetCore2+,但问题可能更一般

我的CI管道当前如下所示:

  • dotnet构建-c版本
  • dotnet测试
  • dotnet public-c发行版--无构建
对于测试步骤,它使用默认的
Debug
配置,因此它还必须使用
Debug
config构建应用程序


因此,我想知道,使用
Debug
而不是
Release
运行测试是否有任何优势,或者我是否应该简单地添加
dotnet test-c Release

我相信可以通过比较“Debug”和“Release”之间的差异进行选择

在发布模式下:有编译器的优化。编译器做了一些低级的改进。这导致原始代码在某些地方可能会发生重大更改。(一些变量和方法调用可以以不明显的方式进行优化)

在调试模式下:代码未优化,编译器生成的.pdb文件与最终程序集一起用于逐步调试

总之,对于测试,最好使用释放模式:

  • 它比调试更轻(.pdb文件不需要)
  • 调试速度更快(由于编译器的优化,.pdb文件不会生成)
  • 测试是在类似prod的环境中运行的

  • 另外,如果出现预处理器指令和配置转换,请注意它们,这取决于生成配置。

    如果不打算调试测试,请不要使用调试模式。有时,人们需要通过测试调试应用程序,甚至需要调试测试本身。如果不是这种情况,请使用释放模式,它会更轻