如何在NUnit 3控制台中使用“--where”参数?

问题描述 投票:1回答:2

NUnit 3在控制台中有“--where”参数,允许我们选择不同的测试来运行。它可以包括不同的命名空间或测试类别。

我想(但不知道如何)包含一些命名空间来运行测试。我有具体的例子,我向你寻求帮助。

假设我们有下一个带有测试的命名空间:

  1. Project.MainSuite(包括1个测试)
  2. Project.MainSuite.Category1(有2个测试)
  3. Project.MainSuite.Category1.TestSuite1(有3个测试)

如何使用--where参数运行下一个测试:

  1. 仅从Project.MainSuite.Category1进行测试(应运行2次测试)
  2. 来自Project.MainSuite.Category1Project.MainSuite.Category1.TestSuite1的测试(应该进行5次测试)
  3. 来自Project.MainSuite的所有测试包括子命名空间(应该运行6个测试)

在此先感谢您的帮助。

nunit nunit-3.0 nunit-console
2个回答
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.Category1Project.MainSuite.Category1.TestSuite1的测试

类似地,对于此场景,您可以将类别和类子句组合在一起。 --where "cat == TestsInCategory1Namespace and class == Project.MainSuite.Category1.TestSuite1"

3.来自Project.MainSuite的所有测试,包括子命名空间

--where test == Project.MainSuite


0
投票

这有帮助吗? Test Selection Language

这适用于类别qazxsw poi

这个名称空间:--where "cat == SmokeTests" --noresult

© www.soinside.com 2019 - 2024. All rights reserved.