gpt4 book ai didi

c# - 使用 NUnit 按顺序运行 TestFixtures

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:18 26 4
gpt4 key购买 nike

我需要在我的 NUnit c# 应用程序中订购测试装置。我有一个关于如何从 this page 运行有序测试方法的示例,并且我尝试使用示例应用程序中提供的相同方法为测试装置实现相同的逻辑。在我们的应用程序中每个类都有一个测试夹具,每个测试夹具都有一个测试方法。我们最近的尝试是使用继承自名为 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 与一个测试类分开的实现的情况下完成这项工作?

最佳答案

好的,如果我没理解错的话,您想要跨多个 TestFixtures 进行测试。因此,在这种情况下,您不想使用 OrderedTestFixture,因为它是专门为不跨多个装置运行测试而创建的。如果您从之前的问题中查看我的 GitHub 存储库,您将需要遵循示例 2 的代码。请注意,在这种情况下,您应该只使用 OrderedTest 属性 - 使用 Test 将抛出整个事情,因为那样它只会由 NUnit 随机调度,而不是通过使用 TestCaseData 进行排序。返回引用 my blog post了解更多详情。

希望对您有所帮助。

关于c# - 使用 NUnit 按顺序运行 TestFixtures,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31281395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com