2017-04-24 93 views
0

这个论坛上的新手和第一个问题。我的第一个脚本使用mstest和PowerShell v4.0工作流成功运行并行测试。但是,“InlineScript”具有并行运行5的限制,试图将脚本重新设计为没有“InlineScript”的脚本。虽然我可以使用硬编码测试名称使第二个脚本适用于单一测试,但当我尝试为运行提供所有测试时遇到问题。请看看这两个脚本和建议:使用mstest和PowerShell工作流程运行并行测试

首先脚本:

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工作。无论如何,谢谢你。