在TFS中,如何使用自定义记录器执行测试运行?

时间:2018-07-06 14:25:41

标签: tfs automated-tests

我想使用自定义记录器在TFS中运行自动化测试。通常,您可以通过在Visual Studio测试任务的其他控制台选项部分中添加 / Logger:MyCustomLogger 之类的方法来实现此目的。

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

  

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

     

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

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

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

那么有没有解决方法?在运行测试计划时,是否可以提供记录器?

1 个答案:

答案 0 :(得分:0)

请检查this documentation

  

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

<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 = xxxxxxxxxxxxxxxx“                           friendlyName =“ sampleLoggerWithoutParameters2” />                                 

     

这将加载并初始化:

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