MbUnit を使用して、いくつかの StaticTestFactory メソッドを使用してテストを作成します。それぞれのメソッドには、対応するテストのセットアップ メソッドとティアダウン メソッドがあります。要件は、テスト結果、特に失敗したものを外部システムに記録することです。
ただし、TestContext.CurrentContext.Outcome.Status を使用して正しいテスト結果ステータスを取得できません。以下のコードを使用すると、テストが失敗することがわかりますが、Gallio Icarus と Echo の両方がテストを失敗として示している場合でも、Outcome.status は常に FactoryAssignedTearDownMethod から「合格」として返されます。
このシナリオで正しい結果を得るための回避策または修正を探しています。
public class FactoryTest
{
[StaticTestFactory]
public static IEnumerable<Test> CreateStaticTests()
{
var testcase = new TestCase("simpletest" , () =>
{
Assert.Fail("staticfactory created test failed.");
});
testcase.TearDown = FactoryAssignedTearDownMethod;
yield return testcase;
}
public static void FactoryAssignedTearDownMethod()
{
//outcome value is always 'Passed', even when test fails
TestLog.WriteLine("Test Outcome Status from factory assigned method: " + TestContext.CurrentContext.Outcome.Status);
}
}