下一个 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 做什么。
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 做什么。