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?