Я довольно новичок в TFS и все еще учусь его использовать (так что, надеюсь, это не просто глупый недосмотр с моей стороны). Этим летом я прохожу стажировку на сезонной должности разработчика, и, по сути, моей конечной целью является автоматизация нагрузочного тестирования для веб-сайта компании. Я использую TFS для достижения этой цели; У сборки, которая у меня сейчас есть, есть только две задачи: одна - запустить контроллер и среду тестирования, а другая - остановить их. Моя проблема заключается в том, что сборка продолжает давать сбой до того, как она действительно запускается, из-за ошибки «термин не распознан» в строке 1, вызванной, в частности, тем, что рабочая папка по умолчанию не распознается.
Вот соответствующие файлы журнала:
2019-05-30T20:00:02.0942883Z Executing the following powershell script. (workingFolder = D:\RM_agent\_work\11\s)
2019-05-30T20:00:02.0942883Z D:\RM_agent\_work\11\s
2019-05-30T20:00:02.4999117Z ##[error]. : The term 'D:\RM_agent\_work\11\s' is not recognized as the name of a
2019-05-30T20:00:02.4999117Z ##[error]cmdlet, function, script file, or operable program. Check the spelling of the
2019-05-30T20:00:02.4999117Z ##[error]name, or if a path was included, verify that the path is correct and try again.
2019-05-30T20:00:02.4999117Z ##[error]At line:1 char:3
2019-05-30T20:00:02.4999117Z ##[error]+ . 'D:\RM_agent\_work\11\s'
2019-05-30T20:00:02.4999117Z ##[error]+ ~~~~~~~~~~~~~~~~~~~~~~~~
2019-05-30T20:00:02.4999117Z ##[error] + CategoryInfo : ObjectNotFound: (D:\RM_agent\_work\11\s:String)
2019-05-30T20:00:02.4999117Z ##[error] [], CommandNotFoundException
2019-05-30T20:00:02.4999117Z ##[error] + FullyQualifiedErrorId : CommandNotFoundException
Я знаю, что для рабочей папки по умолчанию установлено значение $(Build.SourcesDirectory)
, поэтому я предполагаю, что D:\RM_agent\_work\11\s
- это то, что $(Build.SourcesDirectory)
оценивает. RM_agent
, очевидно, является агентом, поэтому /_work/11/s
должен быть локальным путем, в котором он хранит исходный код. Почему это тогда не признается?
Я попытался вручную установить рабочую папку для сценариев через tfs в папку, где хранится сборка, но сборка все равно не удалась, и в журналах все еще показывалось, что workingFolder = D:\RM_agent\_work\11\s
.
Кроме того, строка кода, на которой происходит сбой сборки, Executing the following powershell script. (workingFolder = D:\RM_agent\_work\11\s)
, отсутствует в сценарии, который я пытаюсь выполнить, что меня смущает. Откуда этот скрипт?
(я могу удалить это, если оно не соответствует руководящим принципам / не по теме, но если кто-то может указать мне на какие-либо ресурсы по tfs и / или нагрузочному тестированию, это также будет чрезвычайно полезно)
РЕДАКТИРОВАТЬ: Вот сценарий powershell для первого задания
########################################
# start environment
########################################
# import modules
Import-Module '\\neenah-san1\TSbuild\Deployment\Tools\PowerShell\Azure\JJK.TS.Azure.psm1' -Force -Prefix 'TS'
# provide azure credentials
$credential = Get-Credential
# login to azure subscription
Login-AzureRmAccount -Credential $credential
# start the controller
Get-AzureRmVM -ResourceGroupName 'TS-LoadTest-TST' | Where-Object {$_.Name -match 'vstc'} | Start-TSAzureVM -Credential $credential
# wait for controller to fully start
Start-Sleep -Seconds 120
# start the agents
Get-AzureRmVM -ResourceGroupName 'TS-LoadTest-TST' | Where-Object {$_.Name -match 'vsta'} | Start-TSAzureVM -Credential $credential
# check status of all servers
Get-AzureRmVM -ResourceGroupName 'TS-LoadTest-TST' -Status | Sort-Object -Property Name | Select-Object -Property Name, PowerState | Format-Table -AutoSize
Структура решения:
РЕДАКТИРОВАТЬ 2: [решено] Теперь все исправлено, спасибо! Я вошел в репозиторий и сопоставил папку, в которой находились мои скрипты, с $(build.sourcesDirectory)
. Следовательно, мне удалось изменить путь к файлу на $(build.sourcesDirectory)\StartControllerAndAgents.ps1
, и сборка теперь может найти файлы для запуска.