Nunit 测试订单 - 单一测试 - 多个订单

Nunit Test Order - Single Test - Multiple Orders

对于Nunit测试单,一个测试是否可以有多个订单位置,比如[Test, Order(3, 10, #...)]?

场景 - 我正在使用端到端有序测试(使用断言验证输入的信息)自动化多页在线应用程序,我想验证之前页面上的信息是否仍然存在 - 已保存 - 当我点击后退 按钮(基本上,使用后退 按钮进行导航,从应用程序的最后一页开始反向检查端到端)。我想重用已经存在的断言,而不是再次重写相同的断言。 我尝试了以下实验,它生成构建错误 CS1729 - 'type' 不包含采用 'number' 参数的构造函数: [测试, 订单(66, 67)] ** [测试,订单(66)(67)] ** [测试,订单(66),订单(67)] ** [测试,订单(66)] [测试,订单(67)]

我用 Google 搜索了这个,但我没有看到执行上述操作的任何内容,所以我认为这是不可能的,但想确认一下。我无法删除 Order 属性,因为这是此测试要求的一部分。

不,那不可能。 OrderAttribute设置了一个属性,这是一个简单的整数。

要模拟出你想要的效果,你可以这样做:

  1. 将相关测试的所有代码提取到单独的方法中,由测试调用。它应该与测试具有相同的签名。
  2. 使用不同的名称复制您要重复的测试。
  3. 为每个测试分配不同的订单属性。

假设 void TestMethod() 的签名看起来像这样...

[Test, Order(66)]
public void MyTest66()
{
    MyRealTest();
}

[Test, Order(67)]
public void MyTest67()
{
    MyRealTest();
}

private void MyRealTest()
{
    // Your actual test code goes here
}

注意...这是一个 非常丑陋的 hack 但我能想到的唯一有保证的方法来做你指出的是必需的。