下一个 xUnit 测试在 IClassFixture 中的先前清理之前开始 运行

The next xUnit test starts to run before previous cleanup in IClassFixture

Using "xunit": "2.2.0-beta4-build3444" with ASP.NET Core 我有两个集成测试与同一个数据库交互 table 并使用 IClassFixture:

// FooTestData inserts two rows in TableA
// In FooTestData.Dispose() the rows are deleted
public class FooTest : IClassFixture<FooTestData>
{
    [Fact]
    public void Test()
    {
        var result = GetAllRowsFromTableA()
        // Assert that result.Count == 2
    }

}

// BarTestData inserts one row in TableA
// In BarTestData.Dispose() the row is deleted
public class BarTest: IClassFixture<BarTestData>
{
    [Fact]
    public void Test()
    {
        // Do something
    }
}

FooTest.Test 失败,因为它在调用 BarTestData.Dispose() 之前开始。如果我一次 运行 所有测试(不是并行),数据库中的行数是 3。我该如何解决?

UPDATE 似乎测试是 运行 并行的,即使我告诉他们不要这样做(在 Visual Studio 中不选择 "Run in parallell" )

https://xunit.github.io/docs/running-tests-in-parallel.html

默认情况下,xunit > 2.0 并行运行两个测试,无论我告诉 Visual Studio 做什么。