NUnit 3有" --where
"控制台中的参数,允许我们选择要运行的不同测试。它可以包含不同的命名空间或测试类别。
我希望(但不知道如何)包含一些命名空间来运行测试。我有具体的例子,我向你寻求帮助。
我们假设我们有下一个带测试的命名空间:
如何使用--where参数运行下一个测试:
Project.MainSuite.Category1
进行测试(应运行2个测试)Project.MainSuite.Category1
和Project.MainSuite.Category1.TestSuite1
的测试(应运行5个测试)Project.MainSuite
的所有测试,包括子命名空间(应运行6个测试)提前感谢您的帮助。
答案 0 :(得分:1)
我最近遇到了类似的问题,希望得到一个可靠的答案。
对你的问题的简短回答是你不能在没有更明确的情况下做你要求的事。
当您使用--where "test == Project.MainSuite"
的where子句(项目中的最高命名空间)运行测试时,它将运行该命名空间和所有子命名空间中的所有测试。
如果使用--where "test == Project.MainSuite.Category1.TestSuite1"
的where子句(Project.MainSuite中最低的子命名空间)运行测试,它将只运行该命名空间内的所有测试。
你可以做一些事情来获得你想要完成的事情。
<强> 1。仅从Project.MainSuite.Category1
--where "class == Project.MainSuite.Category1.ClassWithTests"
只要明确这个命名空间内的类。 或者,如果您担心将来在此命名空间中添加更多测试,并且不想更新脚本以运行测试。您可以将Category属性添加到此命名空间内的Suites / Tests,并根据该Category运行它们。
--where "cat == TestsInCategory1Namespace"
<强> 2。来自Project.MainSuite.Category1
和Project.MainSuite.Category1.TestSuite1
的测试
对于此方案,您可以将类别和类子句组合在一起。
--where "cat == TestsInCategory1Namespace and class == Project.MainSuite.Category1.TestSuite1"
第3。所有来自Project.MainSuite
的测试,包括子命名空间
--where test == Project.MainSuite
答案 1 :(得分:0)
这有帮助吗? Test Selection Language
这适用于类别--where "cat == SmokeTests" --noresult
这适用于命名空间:--where test == "My.Namespace" and cat == Urgent