0

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);
    }
}
4

1 に答える 1

0

私は Gallio を書くことでこれを回避しましたTestRunnerExtension。イベントを処理するTestStepFinishedことで、StaticTestFactory で作成されたすべてのテストに対して適切なテスト結果を取得できます。

于 2013-09-23T01:58:04.397 に答える