NET CORE - 单元测试 - CustomWebApplicationFactory

NET CORE - Unit Tests - CustomWebApplicationFactory

我正在使用 CustomWebApplicationFactory 创建单元测试。我的情况如下: 两个测试 classes(测试 1 和测试 2)。两个 classes 都使用指向网络核心 API 启动的 CustomWebApplicationFactory。

如果我 运行 来自 class Test1 的所有测试都正常。如果我 运行 来自 class Test2 的所有测试,则相同。 如果我 运行 同时进行所有测试,问题就来了。测试因不同原因而崩溃。 我猜 CustomWebApplicationFactory 在两个测试 classes 之间共享一些东西 运行 同时

CustomWebApplicationFactory 没有启动两个实例 API。我不确定发生了什么,但似乎两个测试 classes 都在共享静态字段或类似的东西。

无论如何都要启动两个完全不同的实例?或者其他方法?

我的目标是有多个测试 classes 但都指向相同的 API 和 运行nig 所有测试同时没有它们之间的错误。

谢谢

我在 WebApplicationFactory 中多次遇到同样的问题。我知道你提到你想同时 运行 所有测试,但对我有用的解决方案是只按顺序 运行 测试。

您可以将 AssemblyInfo.cs 文件添加到集成测试项目中,例如:

<ProjectPath>\Properties\AssemblyInfo.cs

里面有这个:

using Xunit;

[assembly: CollectionBehavior(DisableTestParallelization = true)]

这将强制您的测试按顺序 运行 并应清除您看到的错误。