【问题标题】:How to access teamcity configuration parameters in MSBuild unit tests如何在 MSBuild 单元测试中访问 teamcity 配置参数
【发布时间】:2014-07-29 10:15:11
【问题描述】:

有没有办法在 MSBuild 单元测试中访问配置参数?

我已将 teamcity 配置为每隔几个小时运行一次冗长的测试集。 时不时地我想用特定的参数(字符串限制样本测试集)运行测试。我不想检查对单元测试的更改,而是想在团队城市中单击“运行...”并将值设置为某个参数。

这可能吗?

【问题讨论】:

    标签: c# unit-testing msbuild teamcity


    【解决方案1】:

    一种可能的解决方案是从 teamcity 中的构建参数设置环境变量,然后让测试查找此环境变量以确定要运行的内容。

    如果您从配置步骤菜单中选择构建参数并添加新的构建参数,然后选择类型为EnvironmentVariable (.env),您可以将当你想运行一个受限集时的其他值。

    您可以创建一个没有为此构建参数设置值的模板,然后为自动测试运行设置一个设置“all”值的模板实例。然后基于此模板进行另一个构建,该模板没有为此设置值,您可以将其用于手动运行。我相信,如果您没有为参数设置值,那么 TeamCity 会在您尝试运行构建时提示您(但我不确定)

    一旦您在 teamcity 中定义了一个名为 env.file_path_contains 的变量,您就可以使用以下代码在测试中访问它的值:

    System.Environment.GetEnvironmentVariable("file_path_contains")
    

    【讨论】:

    • 是的,我想这就是我要找的。只是为了完整性:如果我定义 EnvironmentVariable: "env.File_Path_Contains" 我可以在我的测试中访问 System.Environment.GetEnvironmentVariable("File_Path_Contains") 或 System.Environment.GetEnvironmentVariable("env.File_Path_Contains")
    • @Marek,谢谢我已经用你用来访问环境的代码更新了答案。
    • System.Environment.GetEnvironmentVariable("file_path_contains") 运行良好,无需添加 'env',谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多