c# - 如何在 XUNIT 中运行所有测试之前和之后运行方法,同时保持固定夹具?
问题描述
我正在尝试实现一个BeforeAfterMethodRun虽然我已经有一个不是我编写的并且正在其他项目中使用的 Fixture。有没有办法在我的班级中有另一个基类时添加它?我收到以下错误:
我的目标是在类中的任何方法被调用一次之前执行命令,这也可以在每个方法调用上调用。尽管这些方法不会相同,并且会因类而异。
有没有办法做到这一点?
解决方案
好的所以我对属性装饰不是很了解。我可以通过创建一个新类来实现这一点:
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]