我需要在我的 NUnit c# 应用程序中订购测试装置。我有一个关于如何从此页面运行有序测试方法的示例,并且我尝试使用示例应用程序中提供的相同方法为测试夹具实现相同的逻辑。在我们的应用程序中,每个类都有一个测试夹具,每个测试夹具都有一个测试方法。我们最近的尝试是使用继承自一个名为 OrderedTestFixture 的类的父测试夹具(与示例中相同),它具有以下方法:
public IEnumerable<NUnit.Framework.TestCaseData> TestSource
{
get
{
var assembly = Assembly.GetExecutingAssembly();
foreach (var order in methods.Keys.OrderBy(x => x))
{
foreach (var methodInfo in methods[order])
{
MethodInfo info = methodInfo;
yield return new NUnit.Framework.TestCaseData(
new TestStructure
{
Test = () =>
{
object classInstance = Activator.CreateInstance(info.DeclaringType, null);
info.Invoke(classInstance, null);
}
}).SetName(methodInfo.Name);
}
}
}
}
该方法应该按顺序返回将要执行的测试方法。但是,即使它按顺序返回测试方法,也无法按顺序执行它们。
我使用的逻辑与 App 示例中的完全相同。一个从 Attribute 继承的 orderedTestAttrribute 类,它将被放置在每个测试方法中,如下所示:
[Test]
[OrderedTest(1)]
[BeforeAfterTest]
public void TestMethod() { }
有没有人知道如何在不改变我当前的实现的情况下完成这项工作,即分别拥有一个 testFixture 和一个测试类?