C# - Nunit - nunit3-console 没有在 where 过滤器中选择提到的 class 文件

C# - Nunit - nunit3-console not picking the mentioned class file in the where filter

虽然 运行 通过 Nunit3-console 扩展名为 .csproj 的 Nunit 项目,但正确选择了两个测试。

nunit3-console.exe SeleniumCHash.csproj

但是,当我尝试通过选择要执行的 class 文件来过滤掉其中一项测试时,测试没有被选中。

nunit3-console.exe --where "class =~ 'SeleniumCHash: FirstTest'" SeleniumCHash.csproj

以下是我的Class文件。

namespace SeleniumCHash
{
    [TestFixture]
    public class FirstTest : TestBaseClass
    {
        [Test]
        public void LoginCheck()
        {
        }

    }
}

您使用的语法表明您有一个名为 "SeleniumCHash: FirstTest" 的 class。当然,那是不可能的。所以当没有找到测试时,没有测试 运行.

你没有提供你的代码,但我猜它类似于

namespace Some.Thing
{
    public class SeleniumCHash
    {
        [Test]
        public void FirstTest() { ... }
        ...
    }
}

您可以 运行 FirstTest 使用任何选项

--where "class == Some.Thing.SeleniumCHash && method == FirstTest"
--test Some.Thing.SeleinumCHash.FirstTest
--where "test == Some.Thing.SeleniumCHash.FirstTest"
--where "test =~ FirstTest"

当然,最后一个只有在没有其他测试匹配 "FirstTest" 时才会起作用。如果有,那么全部都会运行.

请注意,classmethod 指的是 C# 元素,而 test 指的是测试的全名, 通常 包含那些元素,但也可以由编写测试代码的用户修改。