首页 > 解决方案 > 如何在 XUNIT 中运行所有测试之前和之后运行方法,同时保持固定夹具?

问题描述

我正在尝试实现一个BeforeAfterMethodRun虽然我已经有一个不是我编写的并且正在其他项目中使用的 Fixture。有没有办法在我的班级中有另一个基类时添加它?我收到以下错误:

在此处输入图像描述

我的目标是在类中的任何方法被调用一次之前执行命令,这也可以在每个方法调用上调用。尽管这些方法不会相同,并且会因类而异。

有没有办法做到这一点?

标签: c#automationxunit

解决方案


好的所以我对属性装饰不是很了解。我可以通过创建一个新类来实现这一点:

using System;
using System.Reflection;
using Linedata.Amp.Qa.Foundation.Logger;
using Xunit.Sdk;

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
class ReportBeforeAttribute : BeforeAfterTestAttribute
{
    public override void Before(MethodInfo methodUnderTest)
    {
        Trace.Log("Starting Method");
    }

    public override void After(MethodInfo methodUnderTest)
    {
        Trace.Log("MethodFinished ");
    }
}

然后将所需的类装饰为[ReportBefore]


推荐阅读