2017-04-24 6 views
0

이 포럼에서 초보자와 첫 번째 질문입니다. 첫 번째 스크립트는 PowerShell v4.0 워크 플로우로 mstest를 사용하여 테스트를 병렬로 성공적으로 실행합니다. 그러나 "InlineScript"에는 5를 병렬로 실행하는 데 한계가 있으므로 "InlineScript"가없는 스크립트를 다시 디자인하려고합니다. 두 번째 스크립트를 하드 코딩 된 테스트 이름으로 단일 테스트에 사용할 수는 있지만 모든 테스트를 실행하려고하면 문제가 발생합니다. 두 스크립트를 살펴보고 제안하십시오 :PowerShell 워크 플로우로 mstest를 사용하여 병렬 테스트 실행하기

먼저 스크립트 :

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 

답변

0

좀 더 시도하고 나는 그것이 중첩 된 foreach 문을 사용하여 작업 할 수 있습니다. 어쨌든 고맙습니다.