有没有办法在 xunit 测试类中的每个测试之前异步运行设置方法?

chr*_*389 4 c# unit-testing asynchronous xunit

我有一组测试,每次测试之前都需要一些设置。该设置要求我异步运行它,并且我并不特别希望将异步代码运行在构造函数中,这是xunit推荐的

public class Tests
{
    private async Task SetupForEachTestAsync()
    {
        // await setup
    }

    public Tests()
    {
        SetupForEachTestAsync.GetAwaiter().GetResult();
    }

    [Fact]
    public void Test1()
    {
        // My test
    }

    [Fact]
    public void Test2()
    {
        // My test
    }
}
Run Code Online (Sandbox Code Playgroud)

关于如何改进这个问题有什么建议吗?

adh*_*nem 6

实现xUnit的IAsyncLifetime接口。它定义了InitializeAsyncDisposeAsync,分别在构造之后和处置之前立即调用。