Новичок и первый вопрос на этом форуме. Мой первый скрипт успешно запускает тесты параллельно, используя mstest с рабочим процессом PowerShell v4.0. Но поскольку «InlineScript» имеет ограничение на запуск 5 параллельно, попытка перепроектировать сценарий на что-то без «InlineScript». Хотя я мог бы заставить второй скрипт работать для одного теста с жестко закодированным именем теста, у меня возникают проблемы, когда я пытаюсь вытащить все тесты для запуска. Взгляните на оба сценария и предложите:
Первый сценарий:
workflow Primary_Tests
{
$Workspace = "E:\Vishal_PS_Workspace"
$mstest = "C:\VisualStudio12\Common7\IDE\MSTest.exe"
$testlocation = "$Workspace\TEST\TestBin"
$RunName = Get-Date -format "yyyy-MM-dd-T-HH\hmm"
mkdir "$Workspace\TestResults\Results-$RunName"
$resultsDir = "$Workspace\TestResults\Results-$RunName"
$results = "/resultsfile:$resultsDir\$RunName.trx"
InlineScript { cd $Using:testlocation }
$tests = @("Test_01", "Test_006", "Test 013", "ST-002-002", "ST-001-002", "ST-032-002", "ST-012-002", "Test 016", "Test 143")
ForEach -Parallel -ThrottleLimit 10 ($test in $tests)
{
InlineScript { & $Using:mstest /TestContainer:"$Using:testlocation\$Using:test.webtest" /resultsfile:"$Using:resultsDir\$Using:test.trx" }
}
}
Primary_Tests
Второй сценарий:
Workflow Parallel_Tests
{
$Workspace = "E:\Vishal_PS_Workspace"
$mstest = "C:\VisualStudio12\Common7\IDE\MSTest.exe"
$testlocation = "$Workspace\TEST\TestBin"
$RunName = Get-Date -format "yyyy-MM-dd-T-HH\hmm"
mkdir "$Workspace\TestResults\Results-$RunName"
$resultsDir = "$Workspace\TestResults\Results-$RunName"
$results = "/resultsfile:$resultsDir\$RunName.trx"
$arguments = " /testcontainer:" + "$testlocation\" + "Test_01.webtest"
$tests = @("Test_01")
ForEach -Parallel -ThrottleLimit 10 ($test in $tests)
{
Invoke-Expression "$mstest $arguments $results"
}
}
Parallel_Tests