.NET 6 运行 没有并行化的 XUnit 测试
.NET 6 run XUnit tests without parallelization
我们的 .NET 6 CI 运行 无人机有问题。我们有针对真实 postgres 数据库的 运行 测试。
在本地测试 运行 非常好,因为 Rider 没有将它们并行化。
但是,在 CI 上,测试随机失败,因为数据库中的数据与给定测试的预期数据不同。
我们的理解(根据失败的随机性)是 运行 在 CI 中并行进行的测试。
到目前为止,我们尝试了 XUnit 配置文件 (xunit.runne.json
) :
{
"parallelizeAssembly": false,
"parallelizeTestCollections": false,
"maxParallelThreads": -1
}
并在所有测试 classes 的父 class 上添加一个带有名称的 [Collection]
属性:
[Collection("Database Test")]
在 CI 中,测试是 运行 使用 dotnet test
。
有什么线索吗?提前谢谢你
对于遇到类似问题的人,我们的问题是 CI 中的测试使用相同的数据库。因此,当多个管道 运行ning 时,问题就发生了。我们通过在 CI 中为数据库使用服务容器解决了这个问题:每个 CI 运行.
一个临时数据库
在给定的 CI 运行 中按顺序排列测试的解决方案是 [Collection]
属性。
我们的 .NET 6 CI 运行 无人机有问题。我们有针对真实 postgres 数据库的 运行 测试。
在本地测试 运行 非常好,因为 Rider 没有将它们并行化。
但是,在 CI 上,测试随机失败,因为数据库中的数据与给定测试的预期数据不同。
我们的理解(根据失败的随机性)是 运行 在 CI 中并行进行的测试。
到目前为止,我们尝试了 XUnit 配置文件 (xunit.runne.json
) :
{
"parallelizeAssembly": false,
"parallelizeTestCollections": false,
"maxParallelThreads": -1
}
并在所有测试 classes 的父 class 上添加一个带有名称的 [Collection]
属性:
[Collection("Database Test")]
在 CI 中,测试是 运行 使用 dotnet test
。
有什么线索吗?提前谢谢你
对于遇到类似问题的人,我们的问题是 CI 中的测试使用相同的数据库。因此,当多个管道 运行ning 时,问题就发生了。我们通过在 CI 中为数据库使用服务容器解决了这个问题:每个 CI 运行.
一个临时数据库在给定的 CI 运行 中按顺序排列测试的解决方案是 [Collection]
属性。