我想使用自定义记录器在TFS中运行自动化测试。通常,您可以通过在Visual Studio测试任务的其他控制台选项部分中添加 / Logger:MyCustomLogger 之类的方法来实现此目的。
您可以选择按部件,测试运行ID或测试计划选择测试。如果选择“测试运行”或“测试计划”,则无法设置“其他控制台选项”值。根据文档:
如此处所述,可以传递给vstest.console.exe的其他控制台选项。
不支持这些选项,使用代理阶段的“多代理”并行设置运行测试时,或使用“测试计划”选项运行测试时,这些选项将被忽略。可以使用设置文件来指定这些选项。不支持这些选项,使用代理阶段的“多代理”并行设置运行测试时,或使用“测试计划”选项运行测试时,这些选项将被忽略。可以使用设置文件来指定选项。
我认为那是因为它使用TCM.exe而不是VSTest.Console.Exe,而TCM并没有采用相同的控制台选项,但并不完全确定。
根据上面的引用,“可以使用设置文件来指定选项”。我的问题是:哪个设置文件可让您提供记录仪? RunSettings不支持它(尽管可以解决here)。
那么有没有解决方法?在运行测试计划时,是否可以提供记录器?
答案 0 :(得分:0)
通过
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=Value1
和Key2=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,
记录。 Uri和friendlyName在以下位置被忽略 在这种情况下,由于assemblyQualifiedName具有更高的优先级。
Sample.Sample.Logger, Version=0.0.0.0, Culture=neutral,
PublicKeyToken=xxxxxxxxxxxxxxxx"