Visual Studio 2015 MSTest 无法运行负载测试

Posted

技术标签:

【中文标题】Visual Studio 2015 MSTest 无法运行负载测试【英文标题】:Visual Studio 2015 MSTest cannot run a loadtest 【发布时间】:2016-09-09 09:51:28 【问题描述】:

我正在尝试运行包含运行负载测试文件的 MSTest 的批处理文件,但它总是返回错误消息 “Visual Studio Enterprise 需要执行测试。” Visual Studio 2015 Enterprise 已经与 MSTest 一起安装在我的机器上。

这是批处理文件的内容:

pushd ..
"D:\Visual Studio 14.0\Common7\IDE\MSTest.exe" /testcontainer:%arg1% /testsettings:Local.Testsettings /resultsfile:Scripts\TestResults\%arg2%.trx"
popd

地点:

%arg1% = loadtest.loadtest

%arg2% = loadtest.loadtest.date

Local.Testsettings:x64

【问题讨论】:

Visual Studio 的某些部分只能安装到系统驱动器或从系统驱动器工作,通常是C:。您的批处理文件运行D:...MStest.exe。您是否安装了多个 Visual Studio 版本,并且其中任何一个都安装在非系统驱动器上? 从开发者命令提示符运行你的批处理文件 【参考方案1】:

作为answer here 的一部分,我在尝试通过 TFS/Powershell 运行测试时遇到了同样的问题。为了解决这个问题,我接受了@allen 的建议,在运行测试之前调用“开发人员命令提示符”,并在 Powershell 脚本中实现了一个解决方案,似乎适用于我测试过的两台服务器,我已经适应了与 BAT 兼容:

**注意:这是针对 VS 2017 的,我相信您只需更改路径中的年份即可调用以前的版本*

(对于@user6329531,BAT 版本的修复,在执行测试之前调用它)

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"

(我用于运行 Microsoft“LoadTests”的完整 Powershell 脚本)

param (
    [string]$path = ""
 )

#For this to work correctly you need to make sure the following things are done: 
#https://***.com/a/53211350/2912011
Write-Output $path

#Start deveng, for some reason it likes to complain if it's not runnning
#https://social.msdn.microsoft.com/Forums/vstudio/en-US/1d5574c0-4a56-4dd1-b390-3a3683278d16/loadtest-require-visual-studio-enterprise?forum=vstest
Start-Process "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe"

#Run the "Developer Command Prompt" 
cd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\"
./VsDevCmd.bat

#Navigate to the MSTest directory
cd "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\"

#Iterate through the entire directory, run each loadtest one at a time
$fullPath = $path

Get-ChildItem $fullPath -Filter *.loadtest | 
Foreach-Object 
    $content = $_.FullName

    Write-Output $content

    ./mstest.exe /testcontainer:"$content" /detail:testtype


try 
    Get-Process devenv -IncludeUserName | Where UserName -match EBMTFSServiceAccount| Stop-Process

catch 
    #This may fail, if so it probably is not an issue, but we need to double check...
    Write-Output $_.Exception.Message

【讨论】:

以上是关于Visual Studio 2015 MSTest 无法运行负载测试的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 2008 中分析 MsTest 的单元测试?

针对 Visual Studio 2012 本机 C++ 测试从命令行运行 mstest

Visual Studio 2013/2015 测试项目模板 - 用于 NUnit?

在 Visual Studio 2015 for UWP 中加速单元测试的任何方法

Visual Studio 2010 和测试驱动开发

Visual Studio 2010 中的负载测试执行时间