如何从命令行运行单元测试测试?

Nam*_* VU 51 command-line unit-testing visual-studio-2010 tfs2010

我用Google搜索并找到了以下有用的参考资料.目前我希望在以下情况下从命令行运行所有内容(为了便于执行和快速):

  1. 特定测试(即由标记为[TestMethod()]的方法编写的测试)
  2. 一堂课中的所有考试
  3. 对当前TFS未决变更的所有影响测试.
  4. 所有测试
  5. 除标记为类别[TestCategory("some-category")]之外的所有测试

我不知道如何才能为上述需求编写正确的命令.

参考文献:

  1. MSTest.exe http://msdn.microsoft.com/en-us/library/ms182487.aspx
  2. MSTest.exe的详细选项http://msdn.microsoft.com/en-us/library/ms182489.aspx
  3. 获得结果http://msdn.microsoft.com/en-us/library/ms182488.aspx

[编辑]

过了一会儿,我发现了以下有用的提示.

  1. 使用位于%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe我的情况下的MSTest.exe运行Visual Studio单元测试.
  2. 使用/testcontainer:Path\To\Your\TestProjectAssembly.dll以指示您的测试编码.如果需要,您可以指定多个'/ testcontainer'选项.
  3. 使用/test:TestFilter过滤来运行测试.请注意,此过滤器适用于完整的测试方法名称(即FullNamespace.Classname.MethodName)

Nam*_* VU 15

目前我可以根据自己的需求得到一些答案:

  1. 特定测试(即通过标记的方法编写的测试[TestMethod()])
    使用MSTest.exe /container:TheAssemblyContainingYourSpecificTest /test:TheSpecificTestName

  2. 类中的所有测试
    使用MSTest.exe /container:TheAssemblyContainingYourClass /test:TheClassNameWithFullNamespace
    注意,/test:过滤时使用类的全名的过滤器.

其他人仍然未知.如果你知道如何,请讨论.

  • /容器对我不起作用,但/ testcontainer有效 (7认同)

小智 13

对于数字4.要在程序集中运行所有测试,它只是:

mstest /testcontainer:YourCompiledTestAssembly.dll


MiF*_*vil 5

有问必答 

5 除了标记为类别的所有测试 [TestCategory("some-category")]

用  

mstest.exe /testcontainer:yourTests.dll  /category:"!some-category"
Run Code Online (Sandbox Code Playgroud)

如果您需要排除多个类别,请使用

  

mstest.exe /testcontainer:yourTests.dll  /category:"!group1&!group2"
Run Code Online (Sandbox Code Playgroud)

参考:   /类别过滤器 


Yan*_*vin 3

您可能对Gallio捆绑包感兴趣。它提供了一个免费的通用自动化平台,可以使用各种测试运行程序(GUI、命令行、PoSh、第三方工具插件等)运行测试(MSTest、MbUnit、NUnit、xUnit 等)

特别是,您可能想要使用Gallio.Echo,这是一个很好的命令行测试运行器:

加里奥回声

Gallio 测试运行程序还具有过滤功能,仅运行单元测试的子集(例如,按类别、按装置等)