NUnit c# アプリケーションでテスト フィクスチャを注文する必要があります。このページから順序付けられたテスト メソッドを実行する方法の例があり、サンプル アプリケーションで提供されているのと同じメソッドを使用して、テスト フィクスチャに同じロジックを実装しようとしました。このアプリケーションでは、テスト フィクスチャはクラスごとに分けられ、各テスト フィクスチャには 1 つのテスト メソッドがあります。私たちの最新の試みは、次のメソッドを持つ 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);
}
}
}
}
このメソッドは、実行されるテスト メソッドを順番に返すことになっています。ただし、テストメソッドを順番に返しても、順番に実行できません。
アプリの例とまったく同じロジックを使用しています。次のように、すべてのテスト メソッドに配置される Attribute から継承する、orderedTestAttrribute クラス:
[Test]
[OrderedTest(1)]
[BeforeAfterTest]
public void TestMethod() { }
1 つの testFixture と 1 つのテスト クラスを別々に持つという現在の実装を変更せずに、どうすればこれを機能させることができるか、誰にもわかりませんか?