NUnit - 如何每次使用自定义设置测试操作两次

NUnit - how to test operation twice using custom setting each time

我想知道如何通过 NUnit 相同的操作正确测试。 每次调用都应将参数设置为静态 属性。我正在寻找类似的 TestCase 实现。

用法:

[DesktopTest, MobileTest]
public async Task ShouldA()
{
}

NUnit 使用 Playwright 框架。目的是使用不同的视口大小而不传递像

这样的参数
[TestCase("desktop")]
[TestCase("mobile")]
public async Task ShouldA(string device)
{
}

我目前的实施DesktopTest

public class DesktopTestAttribute : TestCaseAttribute
{
   public DesktopTestAttribute() : base()
   {
      TestManager.SetDevice("desktop"); // static class
   }
}

但是构造函数后跟 MobileTest 覆盖设备的构造函数。

如果我 运行 桌面目标,不设置移动设备的正确方法是什么?

您可以使用 TestFixture 继承:

public class TestManager
{
    public static void SetDevice(string device) => Device = device;

    public static string Device { get; private set; }
}

public abstract class BaseFixture
{
    protected BaseFixture(string device)
    {
        TestManager.SetDevice(device);

        this.device = device;
    }

    [Test]
    public void ShouldA() => Assert.That(TestManager.Device, Is.EqualTo(device));

    private string device;
}

[TestFixture]
public class DesktopTest: BaseFixture
{
    public DesktopTest(): base("desktop") { }
}

[TestFixture]
public class MobileTest: BaseFixture
{
    public MobileTest(): base("mobile") { }
}