-->

我可以使用mstest.exe没有安装Visual Studio?我可以使用mstest.exe没有

2019-05-13 06:40发布

我想用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.exeMSTest.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.exevstest.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的步骤:

  1. 在C语言创建的 'MSTEST' 目录文件夹:\ dev的。
  2. 复制 'Mstest.exe' 和 'Mstest.exe.config' 从C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ Common7 \ IDE为 'MSTEST' 目录
  3. 复制Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll为“MSTEST”目录
  4. 在“MSTest的”文件夹中创建“组件”目录
  5. 提取的所有V11 Microsoft.VisualStudio.QualityTools *由C的DLL:\ WINDOWS \总成“MSTEST /组件”目录
  6. 复制所有 'V11' Microsoft.VisualStudio.QualityTools。 .DLL文件和Microsoft.VisualStudio.TestTools。 选自C的.dll:\的Windows \ Microsoft.NET \组件\ GAC_MSIL为 'MSTEST /组件'
  7. 复制所有V11 Microsoft.VisualStudio.QualityTools。 .DLL文件和Microsoft.VisualStudio.TestTools。 .dll文件从C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ Common7 \ IDE \ PrivateAssemblies为 'MSTEST /组件'
  8. 添加“组件”,以在“Mstest.exe.config”的“privatePath”属性
  9. 导出“HKEY_LOCAL_MACHINE / SOFTWARE / Wow6432Node /微软/ VisualStudio中/ 11.0 /企业/ QualityTools并将其应用到哈德森框。
  10. 复制QTAgent32.exe和QTAgent32.exe.config为 'MSTEST' 从目录C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ Common7 \ IDE
  11. 添加“组件”,以在“QTAgent32.exe.config”的“privatePath”属性
  12. 从复制 'msdia110.dll' 'C:\ Program Files文件(x86)的\微软的Visual Studio 11.0 \ Common7 \包\调试' 到 'MSTEST /组件'
  13. 注册“msdia110.dll”与C:/windows/syswow64/regsvr32.exe / I” ../mstest/assemblies/msdia110.dll'(This抛出一个错误,但由于某种原因,还是工作,我跑了一对夫妇。时间和尝试不同的regsvr32.exe的版本,我查过,但它的存在在注册表中)

  14. 添加环境变量“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:

  1. 编译工具 -这可以在上找到微软下载页面 ,然后向下滚动到“工具为Visual Studio 2017年” - >“建设为Visual Studio 2017年工具”
  2. TestAgent -这可以在上找到微软下载页面 ,然后向下滚动到“工具为Visual Studio 2017年” - >“为Visual Studio 2017年代理”
  3. 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"


文章来源: Can I use mstest.exe without installing Visual Studio?