测试应在dotnet核心中的Debug还是Release配置中运行

时间:2019-01-30 08:50:04

标签: configuration .net-core buildconfiguration

我正在使用dotnet core 2+,但问题可能更普遍。

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

  • dotnet build -c Release
  • dotnet test
  • dotnet public -c Release --no-build

对于测试步骤,它使用默认的Debug配置,因此它还必须使用Debug配置来构建应用程序。

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

2 个答案:

答案 0 :(得分:1)

我相信可以通过比较“调试”和“发布”之间的差异来进行选择。

在发布模式下:存在编译器的优化。编译器做了一些底层改进。这导致原始代码可以在某些地方进行显着更改。 (某些变量和方法调用可以通过不明显的方式进行优化)。

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

结论是,对于测试,最好使用发布模式:

  1. 它比Debug轻(不需要.pdb文件)。
  2. 调试更快(由于编译器的优化,不会生成.pdb文件)。

P.S。除此之外,请密切注意预处理器指令和配置转换(如果存在),并取决于构建配置。

答案 1 :(得分:0)

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