Есть ли способ включить "Имя удаленного контроллера" в файл *.runsettings?

У меня интегрированная среда с TFS BuildServer + TestControler + несколько TestAgents.

Ранее я использовал файл *.testsettings и определил удаленный сервер в разделе "Роли".

Я обновил BuildServer до VS2013 и представил SpecRun для тестовых выполнений.

Поскольку у меня есть пользовательский файл *.srprofile для TFS, я должен использовать файл.runsettings вместо файла.testsettings.

Я не могу найти тег, где я могу определить "Имя удаленного контроллера" в файле.runsettings.

Есть ли способ включить "Имя удаленного контроллера" в файл *.runsettings??

Я очень новичок в сборке конфигураций. Любое понимание высоко ценится.

Дополнительные детали:

Я нашел эту статью и определил путь к файлу.testsettings внутри файла.runsettings. Ниже приведены измененные файлы в соответствии со статьей. Но это не работает. Может быть, адаптер 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 ответ

Хорошо, я думаю, что ошибка, которую вы допустили, заключается в использовании файла 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.

Другие вопросы по тегам