我一直在使用MsTest.exe来运行使用命名空间的测试,如下所示:
mstest.exe /testcontainer:"MyDllFile.dll"/test:"NameSpace.Folder.Folder1.*“
这就像一个魅力,但我需要能够在运行时将参数传递给我的测试,所以我找到了* .runsetttings文件及其使用RunTestParameters将参数传递给测试并从属性中获取它们的能力。 TestContext但缺点是我必须非常具体地说明我想要运行什么测试,并且必须给它一个特定的方法名称或用逗号分隔的名称来执行测试,如下所示:
vstest.console.exe“MyDllFile.dll”/Settings:"my.runsettings“/测试:”TestMethod1,TestMethod2“
我也尝试过没有运气的TestCaseFilter:
vstest.console.exe“vstest.console.exe”MyDllFile.dll“/Settings:”my.runsettings“/ TestCaseFilter:”TestCategory = MyTestCategory“
是否有人建议我如何使用vstest.console.exe完成mstest.exe的操作?
谢谢!
答案 0 :(得分:4)
vstest.console.exe的文档特别差。这是可能的,但命令行帮助和MSDN文档都没有解释如何执行此操作。
TestCaseFilter设置的可用选项似乎是特定于适配器,但对于默认的MsTest适配器,以下属性可用于过滤。
Name=<TestMethodDisplayNameName>
FullyQualifiedName=<FullyQualifiedTestMethodName>
Priority=<PriorityAttributeValue>
TestCategory=<TestCategoryAttributeValue>
ClassName=<ClassName> (Valid only for unit tests for Windows store apps, currently not available for classic MSTest)
..使用folling运算符。
= (equals)
!= (not equals)
~ (contains or substring only for string values)
& (and)
| (or)
( ) (paranthesis for grouping)
因此,出于您的目的,以下形式的TestCaseFilter应该足够了。
/TestCaseFilter:"FullyQualifiedName~ProjectNamespace.Subnamespace.TestClass"