【问题标题】:In TFS, how can you perform a Test Run with a Custom Logger?在 TFS 中,如何使用自定义记录器执行测试运行?
【发布时间】:2018-07-09 15:57:08
【问题描述】:

我想使用自定义记录器在 TFS 中运行我的自动化测试。通常,您可以通过将 /Logger:MyCustomLogger 之类的内容添加到 Visual Studio 测试任务的 Other Console Options 部分来做到这一点。

您可以按程序集、测试运行 ID 或测试计划选择测试。如果您选择“测试运行”或“测试计划”,则无法设置“其他控制台选项”值。根据文档:

可以传递给 vstest.console.exe 的其他控制台选项,如此处所述。

这些选项不受支持,在使用代理阶段的“多代理”并行设置运行测试或使用“测试计划”选项运行测试时将被忽略。可以使用设置文件指定选项。这些选项不受支持,并且在使用代理阶段的“多代理”并行设置运行测试或使用“测试计划”选项运行测试时将被忽略。可以使用设置文件来指定选项。

我认为那是因为它使用 TCM.exe 而不是 VSTest.Console.Exe,并且 TCM 没有采用相同的控制台选项,但并不完全确定。

根据上面的引用,“可以使用设置文件来指定选项”。我的问题是:哪些设置文件允许您提供记录器? RunSettings 不支持它(虽然可以解决here)。

那么有解决方法吗?有没有办法在运行测试计划时提供记录器?

【问题讨论】:

    标签: tfs automated-tests


    【解决方案1】:

    请查看this documentation:

    通过LoggerRunSettings 部分中的Logger 节点运行设置。这里 是一个关于如何指定的示例:

    <RunSettings>
        <LoggerRunSettings>
            <Loggers>
                <Logger friendlyName="sampleLoggerwithParameters">
                    <Configuration>
                        <Key1>Value1</Key1>
                        <Key2>Value2</Key2>
                    </Configuration>
                </Logger>
                <Logger uri="logger://sample/sampleLoggerWithoutParameters1"
                        friendlyName="sampleLoggerWithoutParameters1" />
                <Logger uri="logger://sample/sampleLoggerWithoutParameters2"
                        assemblyQualifiedName="Sample.Sample.Sample.SampleLogger,
    

    Sample.Sample.Logger,版本=0.0.0.0,文化=中性, PublicKeyToken=xxxxxxxxxxxxxxxxxx" friendlyName="sampleLoggerWithoutParameters2" />

    这会加载并初始化:

    • 带有friendlyName="sampleLoggerwithParameters" 的记录器。 Key1=Value1Key2=Value2 作为字典参数传递 初始化时到记录器。即
      SampleLoggerWithParameters.Initialize(TestLoggerEvents events,
      Dictionary<string, string> parameters)
      使用parameters = {{"Key1", "Value1"}, {"Key2", "Value2"}} 调用
    • 带有uri="logger://sample/sampleLoggerWithoutParameters1" 的记录器。在这种情况下,FriendlyName 会被忽略,因为 uri 具有更高的优先级。
    • 带有assemblyQualifiedName="Sample.Sample.Sample.SampleLogger,
      Sample.Sample.Logger, Version=0.0.0.0, Culture=neutral,
      PublicKeyToken=xxxxxxxxxxxxxxxx"
      的记录器。 Uri 和friendlyName 在 在这种情况下,因为 assemblyQualifiedName 具有更高的优先级。

    【讨论】:

    • 我之前尝试过使用它,但它没有用。我假设它是因为我们 TFS 服务器上的 VsTest 版本都是 2017 年的,并且该代码是在一月份添加的。哪个官方版本支持这个?如果它对我有用,那就太棒了。谢谢
    • 本文档适用于Visual Studio Test Platform,此功能已在15.7.0-preview-20180221-13 (github.com/Microsoft/vstest-docs/blob/master/docs/releases.md) 中引入,您可以尝试在您的构建代理机器上安装最新版本的TestPlatform看看它是否有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多