代码之家  ›  专栏  ›  技术社区  ›  eddyP23

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

  •  0
  • eddyP23  · 技术社区  · 6 年前

    我使用的是dotnet core 2+,但这个问题可能更一般。

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

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

    对于测试步骤,它使用默认值 Debug 配置,因此它还必须使用 调试 配置。

    因此,我想知道,使用 调试 而不是 Release 或者我应该简单地加上 dotnet test -c Release ?

    0 回复  |  直到 6 年前
        1
  •  4
  •   Artem Alieinikov    4 年前

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

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

    在调试模式下: 代码没有经过优化,编译器会生成最终的程序集。带有的pdb文件用于逐步调试。

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

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

    此外,还要注意预处理器指令和配置转换(如果有),并取决于构建配置。

        2
  •  0
  •   Afshar Mohebi    5 年前

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