Есть ли способ включить "Имя удаленного контроллера" в файл *.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.