【发布时间】:2021-11-22 02:24:09
【问题描述】:
您好,我正在尝试运行测试,其中每个测试夹具都有不同的场景,但每个测试都有一个常见的情况,我创建了一个基类/测试夹具,并说常见测试需要在每个测试夹具的测试顺序中首先运行因为我正在测试 api 端点,其中第一个测试(在基类中)需要发送一个简单的 GET 请求以确保端点可用,并且每个 TestFixture 中的其余测试测试不同的请求,这与其他测试不同固定装置。
我已经设法按照需要运行的顺序对测试和测试夹具进行排序,但是驻留在基类中的测试在每个夹具中最后运行,即使我将基础测试的顺序指定为 1。有吗无论如何,为了让 Common 测试首先运行,我已经知道 NUnit 按字母顺序运行测试,但是当测试在基类中时不会发生这种情况。
我的代码结构类似于:
[TestFixture, Order(1)]
public abstract class BaseClass
{
[Test, Order(1)]
public async Task CommonTest()
{
//Perform tests
}
}
[TestFixture, Order(1)]
public class ClassA : BaseClass
{
[Test, Order(1)]
public async Task Test1()
{
//Perform Tests
}
[Test, Order(2)]
public async Task Test2()
{
//Perform Tests
}
}
[TestFixture, Order(2)]
public class ClassB : BaseClass
{
[Test, Order(1)]
public async Task Test3()
{
//Perform Tests
}
[Test, Order(2)]
public async Task Test4()
{
//Perform Tests
}
}
测试执行时的顺序如下:
ClassA: Test1,
Test2,
CommonTest
ClassB: Test3,
Test4,
CommonTest
但我要求测试按此顺序运行
ClassA: CommonTest
Test1
Test2
ClassB: CommonTest
Test3
Test4
【问题讨论】:
标签: c# .net unit-testing nunit