nunit - NUnit.Framework:如何使用 AND 和 OR 选项运行类别?
问题描述
NUnit.Framework:如何使用 AND 和 OR 选项运行类别?
我已经在测试方法中定义了我的类别,例如:
第一种方法:
[<Test>]
[<Category("Smoke")>]
[<Category("Reg")>]
方法二:
[<Test>]
[<Category("Sanity")>]
[<Category("Reg")>]
第三种方法:
[<Test>]
[<Category("Sanity")>]
[<Category("Smoke")>]
第四种方法:
[<Test>]
[<Category("Reg")>]
[<Category("Login")>]
我可以使用以下方法过滤和运行特定测试: dotnet test --filter TestCategory=Smoke
现在我的要求是运行:1)所有具有 Sanity AND Smoke 类别的方法(在上述情况下应该只运行第三种方法)。我试过:dotnet test --filter "TestCategory=Sanity" && "TestCategory=Smoke"但它不起作用。
2) 具有 Sanity 或 Smoke 类别的所有方法(在上述情况下,除第 4 种外,应全部运行)。我试过:dotnet test --filter "TestCategory=Sanity" || “TestCategory=Smoke”,但它不起作用。
请建议在明智地运行 NUnit 类别时如何运行 AND 和 OR?
解决方案
该dotnet test --filter <expression>
选项采用单个参数,即过滤器表达式。您提供了三个论点。
此外,由于您使用的是dotnet test
命令,因此您必须使用 Microsoft 认可的运算符和特征。NUnit 的测试选择语言中的运算符将无法工作,除非它们也被 Microsoft 使用。
在这种情况下,您正在寻找dotnet test --filter "TestCategory=Sanity|TestCategory=Smoke"
请注意,您需要按照您正在使用的命令外壳的要求对上述表达式中的字符进行转义。在 Windows 上,我相信双引号会起作用。在 Linux 上,根据您的 shell,您可能需要使用单引号。
过滤器表达式的语法在这里得到了很好的介绍:https ://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test
推荐阅读
- ajax - 用茉莉花测试猎犬的远程选项
- c# - 如何在mvc中删除列表的特定元素?
- spring - Spring ClasPathXmlApplicationContext registerShutDownHook 与使用 try-with-resources
- json - Symfony FOSRest 返回 html 而不是 json
- java - 在 Android 上使用 Conscrypt 进行 ECC 密钥包装
- soap - 从同一标签多次获取值
- azure - 是否可以在 Azure 中创建没有后端地址池的应用程序网关?
- r - 将两个连续空白行之间的某些行提取到R中的单个列
- java - 获取多级linkedhashmap的值
- java - 在 Spring Batch 中访问 HeaderCallBack 中的 ExecutionContext 值