如何在没有Visual Studio的情况下使用MSTest?

52

MSTest是否有类似于nUnit的独立GUI,让我在没有Visual Studio的情况下使用并运行测试?MSTest的官方网站是什么,在那里我可以了解更多如何使用它的信息?


7个回答

40

1
有针对 visualstudio2013testagentsvisualstudio2015testagents 的 Chocolatey 包,应该会安装到您的 CI 系统(TeamCity/Jenkins)或其他工具使用的正确位置。 - dragon788

20

1
我有两部分的回答。第一部分是你只需要做一次,好处是构建服务器保持干净 - 不需要安装VS。第二部分是这只是我们在使用mstest时遇到的最不重要的问题。其他问题 - 无法进行动态和组合测试 - 迫使我们放弃mstest并采用MbUnit / Gallio,我们从未后悔过这个决定。 - mark
@mark - 感谢分享你的战斗经历。很有用的信息。我一直觉得没有理由从Nunit转移到mstest..但是组织方面的力量认为不同。 - Gishu
@Gishu - 欢迎。我强烈建议你说服负责人使用Gallio/MbUnit。它比mstest更成熟。此外,它的VS插件可以无缝集成所有标准的VS测试窗口,因此您仍然可以从IDE中运行所有单元测试。不要重复我们的错误。 - mark
现在有一个控制台运行程序 - Roman
@mark 你对Gallio在2020年的看法是否仍然适用?它似乎作为一个项目已经相当死了。自2012/2013以来,该网站没有更新过...(https://github.com/Gallio) - W.Prins
显示剩余2条评论

12

你可以使用mstest.exe完成此操作,但要使其在不安装Visual Studio的情况下工作需要一些技巧。这涉及复制多个文件和注册表项。我在这里写了一篇博客。


5
不错的技巧...这个过程的复杂性是使用NUnit编写测试的理由 :) - Precipitous
谢谢,这篇文章真的很有帮助。你已经发布了更新的内容,其中包括批处理脚本来创建“可部署的mstest包”。如果有人没有在你的网站上注意到,请看这个链接:http://mindinthewater.blogspot.com/2011/02/executing-visual-studio-2010-unit-tests.html - Nikita R.

5

使用Gallio作为您的测试运行器...这样当您最终放弃MsTest并转向真正的测试框架时,就不会那么麻烦了。


3
Gallio仍然需要单独安装MSTest。这并没有解决手头的问题。 - alimbada
1
是的,它有。"MSTest是否有类似于nUnit的独立GUI,让我在没有Visual Studio的情况下使用它并运行测试?" 我经常使用Gallio在没有VS的情况下运行测试。问题是关于VS,而不是MsTest。在VS之外运行测试速度更快,并且可以帮助您实践CI。 - RhysC
这是一个非常棒的工具。它的使用方式就像 NUnit UI 一样。 - Teoman shipahi

5

使用 VSTest.console.exe,它是 Microsoft.TestPlatform 的一部分。

需要的步骤:

  1. https://www.nuget.org/packages/Microsoft.TestPlatform/下载测试平台。
  2. 解压缩。
  3. 在解压后的文件夹中,将\tools\net451\Common7\IDE\Extensions\TestPlatform文件夹复制到未安装Visual Studio的机器上。
  4. 从cmd.exe运行VSTest.console.exe MyTest.dll

更多详细信息请参见:https://learn.microsoft.com/en-us/visualstudio/test/vstest-console-options?view=vs-2017#general-command-line-options


3

还不支持.NET 4.0。你知道是否有类似的工具支持.NET 4.0吗? - Ciaran Gallagher
1
他们在2012年更新了这个,以支持使用.Net 4.0编写的测试 :) - JohnZaj
TestRunner 项目已经迁移到此处:https://github.com/macro187/testrunner - Beauty

0

使用 "dotnet test" 命令,它兼容所有版本,例如:

'dotnet test yourassembly.dll -l console -v detailed'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接