1

我有一个带有 TFS BuildServer + TestControler + 几个 TestAgent 的集成环境。

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

我将 BuildServer 更新到 VS2013 并引入了 SpecRun 用于测试执行。

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

我找不到可以在 .runsettings 文件中定义“远程控制器名称”的标签。

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

我对构建配置很陌生。任何见解都受到高度赞赏。

额外细节:

我找到了这篇文章并在 .runsettings 文件中定义了 .testsettings 文件路径。以下是根据文章更改的文件。但它不起作用。可能是 SpecRun Adapter 不支持标签。

我使用的 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>
4

1 回答 1

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...

您根本不需要运行设置文件。

于 2016-04-13T21:28:47.900 回答