Mstest命令在从PowerShell调用时间歇性地失败

时间:2016-06-06 11:17:14

标签: powershell mstest azure-devops

function LoginNormal
{
    $MSTestCall = "C:\Program Files (x86)\Microsoft Visual Studio    14.0\Common7\IDE\MSTest.exe"
    $MSTestArguments = @('/testsettings:C:\PerformanceTests\Local.testsettings')
    $file="C:\LoadTestsQA\Login_Normal.loadtest"
    $MSTestArguments += "/TestContainer:" + $file
    & $MSTestCall $MSTestArguments
}
function LoginPeak
{
    $MSTestCall = "C:\Program Files (x86)\Microsoft Visual Studio     14.0\Common7\IDE\MSTest.exe"
    $MSTestArguments = @('/testsettings:C:\PerformanceTests\Local.testsettings')
    $file="C:\LoadTestsQA\Login_Peak.loadtest"
    $MSTestArguments += "/TestContainer:" + $file
    & $MSTestCall $MSTestArguments
}
LoginNormal
LoginPeak

这个powershell脚本使用PowerShell在MSTest的帮助下执行Visual Studio在线负载测试。 尽管这个脚本给了我想要的输出,但是有时候任何一个函数都会失败并输出如下:

  

开始执行......
  连接到https://mytestsite.visualstudio.com
  初始化
  发生了一个或多个错误   

失败      

最终测试结果:
  结果顶级测试
  ------- ---------------
  未执行c:\ performancetests \ loadtestsqa \ login_normal.loadtest
  0/1测试通过,1未执行

1 个答案:

答案 0 :(得分:0)

不知何故,我设法找到了解决方案。由于这个不能间歇性地在visual studio团队服务中创建负载测试,我将再次调用相同的函数,直到它创建负载测试。

function LoginNormal
    {
    $MSTestCall = "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe"
    $MSTestArguments = @('/testsettings:C:\PerformanceTests\Local.testsettings')
    $file="C:\LoadTestsQA\Login_Normal.loadtest"
    $MSTestArguments += "/TestContainer:" + $file
    Trap {Continue} Stop-Transcript | out-null
    Start-Transcript -path C:\test\s.txt -append
    & $MSTestCall $MSTestArguments
    Stop-Transcript
    $c=Select-String -Path C:\test\s.txt -SimpleMatch "Test Run Failed."
 checkStringLoginNormal($c)
}
function checkStringLoginNormal($arg1)
{
    if(-Not $arg1)
    {
        Start-Sleep -s 60
        Remove-Item C:\test\s.txt
        LoginPeak
    }
else
    {
    Start-Sleep -s 60
    Remove-Item C:\test\s.txt
    #calls the LoginNormal function until the text file contains the text "Test Run Failed."
     LoginNormal 
    }
}
LoginNormal