我用谷歌搜索并找到了以下有用的参考资料。目前,我想在以下情况下从命令行运行所有命令(为了易于执行和快速):
我不知道如何根据我的上述需求编写正确的命令。
参考资料:
过了一段时间,我发现了以下有用的提示。
%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe
。/testcontainer:Path\To\Your\TestProjectAssembly.dll
来指示测试的编码位置。如果需要,您可以指定多个“/testcontainer”选项。/test:TestFilter
过滤要运行的测试。请注意,此过滤器应用于完整的测试方法名称(即 FullNamespace.Classname.MethodName)目前我可以得到一些满足我需求的答案:
特定测试(即通过标记为
[TestMethod()]
的方法编写的测试)MSTest.exe
/container:
包含您的特定测试的程序集 /test:
特定测试名称 班级中的所有测试
使用
MSTest.exe
/container:
TheAssemblyContainingYourClass /test:
TheClassNameWithFullNamespace/test:
是过滤器,过滤时使用类的全名。其他的仍然未知。如果你知道怎么做请讨论。
对于数字 4。 要在程序集中运行所有测试,只需:
mstest /testcontainer:YourCompiledTestAssembly.dll
对于问题
5 除标记为类别的测试外的所有测试 [TestCategory("某些类别")]
使用
mstest.exe /testcontainer:yourTests.dll /category:"!some-category"
如果您需要排除多个类别,请使用
mstest.exe /testcontainer:yourTests.dll /category:"!group1&!group2"
参考:/类别过滤器
您可能对 Gallio 捆绑包感兴趣。它提供了一个免费的通用自动化平台,可以使用各种测试运行程序(GUI、命令行、PoSh、第三方工具插件等)来运行测试(MSTest、MbUnit、NUnit、xUnit 等)
特别是您可能想使用 Gallio.Echo,这是一个很好的命令行测试运行器:
Gallio 测试运行程序还具有过滤功能,仅运行单元测试的子集(例如,每个类别、每个装置等)
由于我遇到的错误而添加此内容。 要运行所有内容,只需使用
vstest.console.exe .\x64\Release\UnitTesting.dll
vstest.console.exe 并未被弃用,因此您不需要 /nologo
抑制。
如果需要的话它还有
--TestCaseFilter|/TestCaseFilter:<Expression>