代码之家  ›  专栏  ›  技术社区  ›  Nam G VU

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

  •  45
  • Nam G VU  · 技术社区  · 14 年前

    我在google上找到了以下有用的参考资料。目前,我希望在以下情况下从命令行运行所有命令(以便于执行和快速):

    1. 一个班的所有测试
    2. 当前TFS的所有受影响测试,等待矿井变更。
    3. 除标记为类别的测试之外的所有测试[TestCategory(“some category”)]

    我不知道如何才能编写一个正确的命令来满足上面的需求。

    参考文献:

    1. 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. 使用运行Visual Studio单元测试MSTest.exe文件,位于 %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe
    2. 使用 /testcontainer:Path\To\Your\TestProjectAssembly.dll 以指示测试的编码位置。如果需要,可以指定多个'/testcontainer'选项。
    3. /test:TestFilter 筛选要运行的测试。注意,这个过滤器应用于完整的测试方法名(即。FullNamespace.Classname.MethodName)
    4 回复  |  直到 7 年前
        1
  •  14
  •   David White    10 年前

    对于数字 要在程序集中运行所有测试,只需:

    MS测试/测试容器:yourcompiredestassembly.dll

        2
  •  14
  •   SteveC    10 年前

    目前,我可以为我的需求找到一些答案:

    1. 特定的测试 (即用标记的方法写的测试 [TestMethod()] )
      使用 MSTest.exe /container: 包含您特定测试的组件 /test: 指定名称

    2. 一个班的所有测试
      MSTest.exe文件 /集装箱: /测试: 带有完整名称空间的类名
      注意 /测试: 筛选时使用类的全名的筛选器。

        3
  •  4
  •   Michael Freidgeim    11 年前

    有问题吗

    5除标记为类别的测试外的所有测试 [TestCategory(“some category”)]

    使用

    mstest.exe /testcontainer:yourTests.dll  /category:"!some-category"
    

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

    mstest.exe /testcontainer:yourTests.dll  /category:"!group1&!group2"
    

    参考文献: /category filter

        4
  •  3
  •   Yann Trevin    14 年前

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

    特别是您可能需要使用 Gallio.Echo 这是一个不错的命令行测试运行程序:

    Gallio.Echo

    filtering capabilities 只运行单元测试的子集(例如每个类别、每个设备等)

    推荐文章