【问题标题】:How do I pass build arguments to my .NET Unit Tests如何将构建参数传递给我的 .NET 单元测试
【发布时间】:2012-05-22 23:41:39
【问题描述】:

我需要将自定义构建设置传递给单元测试。我知道我可以在代码中使用 System.EnvironmentVariable。我想知道如何将参数添加到 TFS 构建定义中,并将其作为代码中的 env 参数读取。它必须由我们的发布工程师在构建定义中指定。

【问题讨论】:

    标签: .net variables tfs build


    【解决方案1】:

    听起来您想使用preprocessor directive 有条件地执行某些代码。

    [TestMethod]
    public void MyTestMethod () 
    {
        bool buildArgumentIsSet = false;
    
        #if MY_BUILD_ARGUMENT
            buildArgumentIsSet = true
        #endif
    
        Assert.IsFalse(
            buildArgumentIsSet, 
            "The evil release engineer set the build argument.");        
    }
    

    然后您的发布工程师可以使用 /define 参数进行编译,例如

    /define:MY_BUILD_ARGUMENT
    

    【讨论】:

    • 恐怕我们对所有部署都有一个每个环境构建一个的策略,以保持一致性并且不会出现差异。我们最终向构建定义添加了一个自定义属性,该属性会生成一个 prop 文件,以便我们的配置 API 可以检测/使用它。
    【解决方案2】:

    你为什么不把它放在app.config中并使用ConfigurationManager来阅读呢?

    【讨论】:

    • 我们已经大量使用了 .NET 配置,问题是能够在每个发布分支的基础上覆盖它。我们最终使用了 Build Defintion 自定义属性,这很简单
    猜你喜欢
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多