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