我能用mstest吗?安装Visual Studio?

zf2sa74q  于 2023-05-01  发布在  其他
关注(0)|答案(8)|浏览(164)

我想用mstest。exe在生成服务器上运行单元测试,但我不想在生成服务器上安装Visual Studio。我可以安装MSTest而不使用Visual Studio吗?

owfi6suc

owfi6suc1#

可以运行mstest。没有visual studio。
下载下面的Visual Studio ISO代理之一,并在服务器上安装测试代理

这将安装运行mstest所需的所有内容。exe文件,比visual studio轻得多。~ 500 MB下载和大约~ 300 MB安装只是测试代理,如果我没记错的话。

x0fgdtte

x0fgdtte2#

这个答案特别适用于Visual Studio 2017,答案是。有关如何查找MSBuild.exe和/或MSTest.exe可执行文件,请参阅this answer

  • 如果你只需要构建你的单元测试项目,那么把MSTest.TestFramework安装到这些项目中,并从它们中删除对Microsoft.VisualStudio.QualityTools.UnitTestFramework的引用。现在您只需要安装Visual Studio 2017 Build Tools并调用msbuild.exe来执行构建。
  • 如果你还需要 * 运行 * 你的测试,事情会变得更加棘手:
  • 最简单的解决方案是安装VS 2017社区版(其中包括msbuild和mstest)-但我不确定这是否合法,我不是律师,所以要小心!
  • 一个法律上更安全的解决方案(从磁盘空间的Angular 来看,也更轻)是先安装Visual Studio 2017 Test Agent,然后再安装 * Build Tools for Visual Studio 2017确切的顺序至关重要1);这将给予你MSTest.exevstest.console.exe,然后你可以叫出来。请注意,实际上找出这些可执行文件的位置是一件痛苦的事情,因为它们不会与构建工具中的MSBuild.exe存在于同一目录结构中。

最后,也是非常重要的一点:如果您确实使用MSTest.TestFramework,并且仍然需要能够从Visual Studio IDE中发现和运行测试,则还需要在单元测试项目中安装MSTest.TestAdapter
1:虽然VS 2017支持并行安装,但它使用单个注册表项,仅记录最近的安装。因此,如果最后安装TestAgent,则该键将指向其安装目录。..但测试代理不包括MSBuild.exe,因此任何依赖此注册表项来确定可执行文件路径的代码都将失败。为什么微软不能让测试代理成为生成工具的可选部分(这样所有的EXE都位于同一目录层次结构中),这是任何人的猜测。

dgiusagp

dgiusagp3#

@crocpulsar,您需要在构建服务器上安装Visual Studio,但您不需要购买额外的许可证
在没有安装VS的情况下,build & MSTest的依赖关系太多了,而且它绝对不受支持。
只要启动构建的人拥有许可证,构建服务器就不需要许可证。自2005年黑暗的日子以来一直是这样,只要有版本平价那么你就没事了。
如果你团队中的每个人都有Ultimate,那么你可以自由地在构建服务器上安装它;但是如果你的团队成员之一有Premium,那么你应该在构建服务器上安装Premium。这也支持许多其他的功能,如代码覆盖率、测试影响分析和架构验证等。

0tdrvxhp

0tdrvxhp4#

我认为你可能可以,但它肯定不支持。
我发现这篇博客文章是由一个声称MSTest在没有安装Visual Studio的情况下工作的人写的。

s8vozzvw

s8vozzvw5#

我只是在没有安装Visual Studio 2017 IDE的情况下在我的服务器上工作。我的要求是

  • 构建项目
  • 构建测试项目
  • 使用VSTest运行测试(我相信这与MSTest的过程类似)

我不得不把其他答案中提到的几件事结合起来,然后再做一个here

VS2017:

  1. BuildTools-可以在Microsoft downloads page上找到,然后向下滚动到“Tools for Visual Studio 2017”-〉“Build Tools for Visual Studio 2017”
  2. TestAgent-这可以在Microsoft downloads page上找到,然后向下滚动到“Tools for Visual Studio 2017”-〉“Agents for Visual Studio 2017”
  3. Nuget Package包含visual studio单元测试dll -这可以在here中找到

第3步是修复以下问题:

“无法解析此引用。找不到程序集“Microsoft。VisualStudio。QualityTools。UnitTestFramework””
然后导致:
“错误CS 0234:类型或命名空间名称“VisualStudio”在命名空间“Microsoft”中不存在(是否缺少程序集引用?)”
我不需要为项目添加任何引用。然而,通往vstest的道路。console.exe包含在TestAgent文件夹中(对我来说是“C:\Program Files(x86)\Microsoft Visual Studio\2017\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow”)

0ve6wy6x

0ve6wy6x6#

以下是我在不安装VS 2012的情况下让构建服务器运行MsTest的步骤:
1.已在c:\dev中创建“Mstest”目录文件夹。
1.复制'Mstest。exe'和'Mstest.C:\Program Files(x86)\Microsoft Visual Studio 11中的“exe.config”。0\Common7\IDE到“Mstest”目录
1.复制Microsoft。VisualStudio。QualityTools。UnitTestFramework.dll到“Mstest”目录
1.已在“Mstest”文件夹中创建“程序集”目录
1.已提取所有v11 Microsoft。VisualStudio。QualityTools。. dll从C:\Windows\assembly到“Mstest/assemblies”目录
1.复制所有“v11”Microsoft。VisualStudio。QualityTools。
. dll和Microsoft.VisualStudio。TestTools..来自C:\Windows\Microsoft的dll。NET\assembly\GAC_MSIL到“Mstest/assemblies”
1.复制所有v11 Microsoft。VisualStudio。QualityTools。
. dll和Microsoft.VisualStudio。TestTools.*.dll从C:\Program Files(x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssembles到'Mstest/assembles'
1.将“assemblies”添加到“Mstest”中的“privatePath”属性。exe.config'
1.导出'HKEY_LOCAL_MACHINE/SOFTWARE/Wow 6432 Node/Microsoft/VisualStudio/11。0/Enterprise/QualityTools并将其应用于哈德逊盒。
1.复制QTAgent 32。exe和QTagent 32。从C:\Program Files(x86)\Microsoft Visual Studio 11中的“MsTest”目录下载。0\Common7\IDE
1.将“assembly”添加到“QTagent 32”的“privatePath”属性。exe.config'
1.收到msdia 110。dll' from 'C:\Program Files(x86)\Microsoft Visual Studio 11.“0\Common7\Packages\Debugger”到“MsTest/assemblies”
1.注册'msdia 110。dll'与c:/windows/syswow 64/regsvr32.exe /i '../mstest/assemblies/msdia110。dll '(这抛出了一个错误,但由于某种原因,它仍然工作。我运行了几次,尝试了不同的regsvr32。exe版本之前我检查,但它在注册表中)
1.添加环境变量'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>
svdrlsy4

svdrlsy47#

如果你需要测试。exe webtest工具,然后您可以安装Visual Studio Enterprise试用版,并确保在测试将运行的帐户下至少运行一次(只需启动它),无需执行任何其他操作。因此,如果您的测试运行在系统帐户下,那么您需要使用如下所示的东西

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"
u5rb5r59

u5rb5r598#

MSTest是announced for .NET Core用户。该公告提供了dotnet工具的使用示例。我还没有弄清楚如何获得独立的mstest可执行文件。

相关问题