我想用mstest.exe运行生成服务器上我的单元测试,但我不希望在生成服务器上安装Visual Studio。 我可以只安装MSTest的不Visual Studio的?
Answer 1:
它能够在不Visual Studio的运行mstest.exe。
下载代理的Visual Studio ISO的下面的一个和服务器上安装测试代理 :
Visual Studio的2017年 (127MB硬盘空间,小于下载)
Visual Studio的2015年 (128MB的设置,需要2GB磁盘空间)
的Visual Studio 2012 (224MB)
的Visual Studio 2013 (287MB)
Visual Studio 2010中 (515MB)
这将安装需要在命令行中运行mstest.exe一切,比视觉工作室重量轻得多。 〜500MB的下载和周围〜300MB如果我没有记错只安装测试代理。
UPDATE
对于版本比VS 2017年旧的,看这里:
https://www.visualstudio.com/vs/older-downloads/
Answer 2:
这个答案特别是涉及到Visual Studio 2017年,答案是肯定的 。 请注意,但是,微软(仍然)不能用于定位相关的可执行文件(提供任何形式的官方API的MSBuild.exe
和MSTest.exe
),所以你被卡住读取注册表键和/或探测不同的目录来定位这些文件 。 你已经被警告。
- 如果你只需要建立自己的单元测试项目(S),安装包
MSTest.TestFramework
到这些项目(S)和删除提及Microsoft.VisualStudio.QualityTools.UnitTestFramework
从他们。 现在,所有你需要的是安装的Visual Studio 2017年生成工具 ,并调用msbuild.exe
来进行构建。 - 如果你需要运行测试,以及,事情变得棘手:
- 最简单的解决办法是安装VS2017社区版(其中包括的MSBuild和MSTEST) - 但我不确定这是否合法,而不是律师,所以一定要小心!
- 有法律更安全的解决方案(和轻得多,在磁盘空间方面)是安装的Visual Studio 2017年测试代理 , 然后 构建工具为Visual Studio 2017年 ( 确切的顺序是非常重要 1); 这会给你
MSTest.exe
和vstest.console.exe
然后你就可以调用出来。 的确注意到,实际上搞清楚这些可执行文件驻留是一种痛苦,因为他们不会在相同的目录结构存在MSBuild.exe
在构建工具。
最后,非常重要的是:如果你使用MSTest.TestFramework
,仍然需要能够发现并从Visual Studio IDE中运行测试,那么您还需要MSTest.TestAdapter
安装在单元测试项目(S)。
1:在VS2017支持并排侧安装,它采用的是只记录最近安装一个注册表项。 因此,如果你最后安装测试代理,关键将指向其安装目录...但测试代理不包括MSBuild.exe
,使依赖此注册表项,以弄清楚,可执行文件的路径,将失败的任何代码。 微软为什么不能把测试代理生成工具的可选部分(这样所有的EXE文件住在同一个目录层次结构)是任何人的猜测。
Answer 3:
我想你也许可以,但它肯定是不支持的。
我发现被人谁声称MSTest的工作没有安装Visual Studio写这篇博客文章。
- http://blog.foxxtrot.net/2010/02/hacking-mstest-out-of-visual-studio.html
Answer 4:
@crocpulsar,您需要在构建服务器上安装Visual Studio, 但你并不需要购买额外的许可证 。
只是有太多的依赖关系,以获得建设和MSTest中没有安装VS上班,这是最肯定不支持。
只要谁开始构建的人有一个许可证,你不需要一个用于构建服务器。 这一直是这种情况,因为2005年的黑暗日子里,只要有版平价那么一切都OK。
如果每个人都在你的团队有旗舰版,那么你可以自由地在构建服务器上安装它; 但如果你的团队成员之一具有高级版,那么你就应该理想地安装在构建服务器溢价。 这也使得很多像代码覆盖率,测试影响分析,和他人之间架构验证等位的。
Answer 5:
下面是我让我的构建服务器无需安装VS 2012运行MSTest的步骤:
- 在C语言创建的 'MSTEST' 目录文件夹:\ dev的。
- 复制 'Mstest.exe' 和 'Mstest.exe.config' 从C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ Common7 \ IDE为 'MSTEST' 目录
- 复制Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll为“MSTEST”目录
- 在“MSTest的”文件夹中创建“组件”目录
- 提取的所有V11 Microsoft.VisualStudio.QualityTools *由C的DLL:\ WINDOWS \总成“MSTEST /组件”目录
- 复制所有 'V11' Microsoft.VisualStudio.QualityTools。 .DLL文件和Microsoft.VisualStudio.TestTools。 选自C的.dll:\的Windows \ Microsoft.NET \组件\ GAC_MSIL为 'MSTEST /组件'
- 复制所有V11 Microsoft.VisualStudio.QualityTools。 .DLL文件和Microsoft.VisualStudio.TestTools。 .dll文件从C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ Common7 \ IDE \ PrivateAssemblies为 'MSTEST /组件'
- 添加“组件”,以在“Mstest.exe.config”的“privatePath”属性
- 导出“HKEY_LOCAL_MACHINE / SOFTWARE / Wow6432Node /微软/ VisualStudio中/ 11.0 /企业/ QualityTools并将其应用到哈德森框。
- 复制QTAgent32.exe和QTAgent32.exe.config为 'MSTEST' 从目录C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ Common7 \ IDE
- 添加“组件”,以在“QTAgent32.exe.config”的“privatePath”属性
- 从复制 'msdia110.dll' 'C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ Common7 \包\调试' 到 'MSTEST /组件'
注册“msdia110.dll”与C:/windows/syswow64/regsvr32.exe / I” ../mstest/assemblies/msdia110.dll'(This抛出一个错误,但由于某种原因,还是工作,我跑了一对夫妇。时间和尝试不同的regsvr32.exe的版本,我查过,但它的存在在注册表中)
添加环境变量“MSTEST_HOME”,并将其设置为“C:\ dev的\ MSTEST \”或到您的路径。 我使用环境变量在我的构建脚本。
调试MSTest的执行错误:
加入“MsTest.exe.config”
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="EqtListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="C:\MsTest.log" />
</listeners>
</trace>
<switches>
<add name="EqtTraceLevel" value="Verbose" />
</switches>
</system.diagnostics>
Answer 6:
我刚刚得到这个工作在我的服务器,而无需安装在Visual Studio 2017年IDE。 我的要求是
- 构建项目
- 搭建测试项目
- 使用VSTest运行测试(我相信这是对MSTest的一个类似的过程)
我不得不做的在其他的答案说几件事情的组合,然后也一个又一个在这里 。
VS2017:
- 编译工具 -这可以在上找到微软下载页面 ,然后向下滚动到“工具为Visual Studio 2017年” - >“建设为Visual Studio 2017年工具”
- TestAgent -这可以在上找到微软下载页面 ,然后向下滚动到“工具为Visual Studio 2017年” - >“为Visual Studio 2017年代理”
- NuGet包包括Visual Studio的单元测试的dll -这可以发现这里
第3步是要解决以下问题:
“无法解析此引用。未能找到程序集‘Microsoft.VisualStudio.QualityTools.UnitTestFramework’”
然后引起:
“错误CS0234:类型或命名空间名称VisualStudio的'不命名空间中的‘微软’存在(是否缺少程序集引用吗?)”
我没有任何引用添加到项目中。 然而,路径vstest.console.exe包含在TestAgent文件夹(对我来说,这是 “C:\ Program Files文件(x86)的\微软的Visual Studio \ 2017年\ TestAgent \ Common7 \ IDE \ CommonExtensions \微软\ TestWindow” )
Answer 7:
MSTest的是对.NET的核心宣布用户。 公告与使用例如dotnet
工具。 我还没有想出自己如何获得独立mstest
可执行文件。
Answer 8:
如果你需要运行mstest.exe WebTest的工具,那么你可以安装Visual Studio企业试用,并确保至少运行一次(刚开始)下帐户在其测试将没有额外需要运行许多工作要做。 所以,如果你的测试下,系统帐户运行,那么你需要使用类似下面
PS C:\agent> psexec -s cmd.exe
C:\Windows\system32>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\mstest.exe"
Microsoft (R) Test Execution Command Line Tool Version 15.0.27520.0
Copyright (c) Microsoft Corporation. All rights reserved.
Please specify tests to run, or specify the /publish switch to publish results.
For switch syntax, type "MSTest /help"