如何将xunit测试结果传递给自定义属性

时间:2018-03-23 04:11:23

标签: c# attributes xunit xunit.net

我创建了一个TestCaseAttribute,它有一个After方法。该属性接收测试轨道案例Id并运行Id,并需要将结果发送到testrail。

问题是我无法配置如何将结果传递给After方法,或者如何从测试中更新属性属性。

关注我的属性类:

    [AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
public class TestCaseAttribute : BeforeAfterTestAttribute
{
    public ulong CaseId { get; private set; }
    public ulong RunId { get; private set; }

    public TestCaseAttribute(ulong caseId, ulong runId)
    {
        CaseId = caseId;
        RunId = runId;
    }


    public string Result { get; set; }
    public string Message { get; set; }

    public override void After(MethodInfo methodUnderTest)
    {

        TestRail2.PostResult(RunId, CaseId, "Passed", message: "Test Passed");

    }
    }

}

1 个答案:

答案 0 :(得分:0)

我很确定xUnit.net不会在您正在寻找/提议的级别公开结果。不幸的是。

您可以使用TestRunner覆盖检测发现并运行测试类型,如下所示: https://github.com/xunit/samples.xunit/blob/master/ObservationExample/XunitExtensions/ObservationTestCaseRunner.cs

在不改变测试的情况下管理全局后处理的最接近的事情是这样的: https://github.com/xunit/samples.xunit/blob/master/TestRunner/Program.cs

我猜你的真实答案要么在两组之间,要么在那组样本中的其他地方;那里有很多可能的例子。