有没有办法在* .runsettings文件中包含“远程控制器名称”?

时间:2015-08-20 00:53:12

标签: tfs build-server specrun runsettings

我正在使用TFS BuildServer + TestControler +多个TestAgent的集成环境。

以前我使用* .testsettings文件并在角色下定义远程服务器。

我将BuildServer更新为VS2013并引入了SpecRun以进行测试。

由于我有TFS的自定义* .srprofile文件,我必须使用.runsettings文件而不是.testsettings文件。

我找不到一个标签,我可以在.runsettings文件中定义“遥控器名称”。

是否可以在* .runsettings文件中包含“远程控制器名称”?

我是构建配置的新手。任何见解都受到高度赞赏。

其他详细信息:

我找到了this文章,并在.runsettings文件中定义了.testsettings文件路径。以下是根据文章更改的文件。 但它不起作用。 可能是SpecRun适配器不支持标记。

我使用的TestSettings文件。

<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name=".........." id="........." xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Description>Remote settings for running the tests on.....</Description>
  <Deployment>
    ....
  </Deployment>
  <RemoteController name=".....local:6901" />
  <Execution location="Remote">
    <TestTypeSpecific>
      <UnitTestRunConfig testTypeId=".....">
        <AssemblyResolution>
          <TestDirectory useLoadContext="true" />
        </AssemblyResolution>
      </UnitTestRunConfig>
    </TestTypeSpecific>
    <AgentRule name=".....">
    </AgentRule>
  </Execution>
   <Properties />
</TestSettings>

我正在使用的示例* .runsettings文件。

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- Configurations that affect the Test Framework -->
  <RunConfiguration>
    <!-- Path relative to solution directory -->
    <ResultsDirectory>......</ResultsDirectory>
  </RunConfiguration>

  <SpecRun>
    <Profile>TFS.srprofile</Profile>
    <ReportFile>TestResults.html</ReportFile>
    <GenerateSpecRunTrait>true</GenerateSpecRunTrait>
    <GenerateFeatureTrait>false</GenerateFeatureTrait>
    <SettingsFile>.....\Remote.AutoTest_2013.testsettings</SettingsFile>
    <ForcedLegacyMode>true</ForcedLegacyMode>
  </SpecRun>
</RunSettings>

1 个答案:

答案 0 :(得分:0)

好的,我认为您犯的错误是使用runsettings文件。您可以在testsettings文件中指定它。我们看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name="RemoteTest" id="9cfa5873-0238-4d56-a1ec-079192fa72c8" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
  <Description>Settings set up to run remotely through test controller</Description>
  <RemoteController name="**YOURCONTROLLERMACHINE**" />
  <Execution location="Remote" hostProcessPlatform="MSIL">
    <TestTypeSpecific>
      <UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
        <AssemblyResolution>
          <TestDirectory useLoadContext="true" />
        </AssemblyResolution>
      </UnitTestRunConfig>
    </TestTypeSpecific>
    <AgentRule name="AllAgentsDefaultRole">
    </AgentRule>
  </Execution>
  <Properties />
</TestSettings>

然后从命令行调用它,传入testsettings路径:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "C:\blahblah\TestsAssembly.dll" /Logger:trx /settings:C:\DummyTests\Remote.testsettings /Platform:x64

TestsAssembly.dll包含您要运行的测试,而Remote.testsettings如上所示。生成的.trx文件出现在\ TestResults ...

根本不需要runsettings文件。