使用带有PowerShell工作流的mstest运行并行测试

时间:2017-04-24 09:20:34

标签: powershell mstest powershell-workflow

这个论坛上的新手和第一个问题。我的第一个脚本使用带有PowerShell v4.0工作流的mstest成功并行运行测试。但是" 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

1 个答案:

答案 0 :(得分:0)

还有一些重试,我可以通过使用嵌套来使其工作 的foreach。无论如何,谢谢你。