Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 如何从命令行运行单元测试?_Unit Testing_Visual Studio 2010_Command Line - Fatal编程技术网

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

Unit testing 如何从命令行运行单元测试?,unit-testing,visual-studio-2010,command-line,Unit Testing,Visual Studio 2010,Command Line,我在谷歌上搜索并找到了以下有用的参考资料。目前,我希望在以下情况下从命令行运行所有命令(以便于执行和快速): 特定测试(即,由标记为[TestMethod()]的方法编写的测试) 一个类中的所有测试 当前TFS的所有受影响测试,待矿山变更 所有测试 除标记为类别的测试外的所有测试[TestCategory(“某些类别”)] 我不确定如何才能根据上述需求编写正确的命令 参考资料: MSTest.exe MSTest.exe的详细选项 获得结果 [编辑] 过了一会儿,我发现了以下有用的提示 使用MS

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

  • 特定测试(即,由标记为[TestMethod()]的方法编写的测试)
  • 一个类中的所有测试
  • 当前TFS的所有受影响测试,待矿山变更
  • 所有测试
  • 除标记为类别的测试外的所有测试[TestCategory(“某些类别”)]
  • 我不确定如何才能根据上述需求编写正确的命令

    参考资料:

  • MSTest.exe
  • MSTest.exe的详细选项
  • 获得结果
  • [编辑] 过了一会儿,我发现了以下有用的提示

  • 使用MSTest.exe运行Visual Studio单元测试,在我的示例中位于
    %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe
  • 使用
    /testcontainer:Path\To\Your\TestProjectAssembly.dll
    指示测试的编码位置。如果需要,可以指定多个“/testcontainer”选项
  • 使用
    /test:TestFilter
    筛选要运行的测试。请注意,此筛选器应用于完整测试方法名(即FullNamespace.Classname.MethodName)

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

    特别是,您可能希望使用,这是一个很好的命令行测试运行程序:


    Gallio测试运行者还必须只运行单元测试的一个子集(例如,每个类别、每个夹具等)。

    目前,我可以根据自己的需要提供一些答案:

  • 一种特定的测试(即通过标记为
    [TestMethod()]
    的方法编写的测试)
    使用
    MSTest.exe
    /container:
    AssemblyContainingYourSpecificTest
    /test:
    SpecificTestName

  • 一个类中的所有测试
    使用
    MSTest.exe
    /container:
    AssemblyContainingYourClass
    /test:
    ClassNameWithFullNamespace
    请注意,
    /test:
    是筛选时使用类全名的筛选器


  • 其他人仍然不为人知。请讨论您是否知道如何操作。

    对于编号4。要在程序集中运行所有测试,只需:

    mstest/testcontainer:YourCompiledTestAssembly.dll

    5所有试验,标记为类别的试验除外 [测试类别(“某些类别”)]

    使用

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


    参考资料:

    这是非常宝贵的—在Visual Studio 2010中运行时,由于一些相对内存不足的测试代码(使用大约300MB的堆内存),我遇到了“内存不足”异常。从命令行运行解决了我的问题。我只是得到“没有要执行的测试”。我想这对visual studio 2019不起作用。对于分布在多个程序集上的测试,您知道这是否也可以包含通配符吗。(我正在尝试为我的OpenCover测试创建一个干净的批处理文件)@RobertSirre,对于多个程序集,请参见@MichaelFreidgeim,那里没有提供真正干净的解决方案(我不喜欢使用Gallio,添加更多的软件),也没有vsmdi文件,后者已被弃用。后来我发现MSTest多次接受指定/testcontainer。除非您使用Nunit或MsUnit tests,否则不支持对类别进行筛选。/container对我不起作用,但是/testcontainer起作用
    mstest.exe /testcontainer:yourTests.dll  /category:"!some-category"
    
    mstest.exe /testcontainer:yourTests.dll  /category:"!group1&!group2"