代码之家  ›  专栏  ›  技术社区  ›  Adam Driscoll

MSTest—确定或指定测试是在dev box上运行还是在builder上运行的最佳方法

  •  1
  • Adam Driscoll  · 技术社区  · 14 年前

    我已经考虑过了,但这似乎有点老套。有更好的解决办法吗?

    4 回复  |  直到 14 年前
        1
  •  3
  •   Johannes Rudolph    14 年前

    我成功地使用了 环境变量 . MSBuild可以轻松地将环境变量转换为可在代码中使用的预处理器符号。MSBuild文件必须包含如下转换:

    <PropertyGroup Condition="'$(ENVIRONMENT_VARIABLE)' != '' ">
        <DefineConstants>$(DefineConstants);ENVIRONMENT_VARIABLE</DefineConstants>
    </PropertyGroup>
    

    这个被剪掉的是检查是否有 ENVIRONMENT_VARIABLE 然后将该变量附加到现有 DefineConstants 向MSBuild指示要为编译定义哪些符号的列表。

    仅在构建服务器上定义环境变量/或仅在开发框上定义环境变量(取决于更简单的方法)是实现简单配置的一种非常精简和灵活的方法。如果您需要更高级的策略,配置文件可能是最好的选择。 但是 在引入不同的构建组合时要小心,通常它们会产生大量的开销,并引入意外中断构建的机会。

    尽可能避免。

        2
  •  2
  •   Alex Humphrey    14 年前

    当我不得不使单元测试在构建机器上的行为与在开发机器上不同时,我最终使用了 Environment.MachineName

    不管你做什么,我都会确保它有很好的记录,让你的同事知道。

        3
  •  1
  •   Ruben Bartelink    14 年前

    正如robertharvey所建议的,应用程序设置是另一种方法。

        4
  •  0
  •   Robert Harvey    14 年前

    你可以使用 application setting .