2017-04-24 3 views
0

Ein Neuling und die erste Frage in diesem Forum. Mein erstes Skript führt erfolgreich Tests parallel mit mstest mit PowerShell v4.0 Workflow durch. Aber da "InlineScript" die Beschränkung hat, 5 parallel laufen zu lassen, versucht man, das Skript auf etwas ohne "InlineScript" umzugestalten. Während ich das zweite Skript für den Einzeltest mit hart codierten Testnamen arbeiten lassen könnte, bekomme ich Probleme, wenn ich versuche, alle Tests zum Laufen zu bringen. Bitte werfen Sie einen Blick sowohl auf die Skripte und vorschlagen:Paralleltests mit MSTest mit PowerShell-Workflow ausführen

Erstes Drehbuch:

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 

Zweite Script:

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 

Antwort

0

Einige mehr wiederholen und ich konnte es durch die Verwendung verschachtelten foreach zu arbeiten. Trotzdem Danke.

Verwandte Themen