【发布时间】:2020-04-09 21:36:18
【问题描述】:
我正在使用 CustomWebApplicationFactory 创建单元测试。我的情况如下: 两个测试类(Test1 和 Test2)。这两个类都使用指向网络核心 API 启动的 CustomWebApplicationFactory。
如果我从 Test1 类运行所有测试,一切正常。如果我从 Test2 类运行所有测试,则相同。 如果我同时运行所有测试,就会出现问题。测试因各种原因而崩溃。 我猜 CustomWebApplicationFactory 在同时运行的两个测试类之间共享一些东西。
CustomWebApplicationFactory 不会启动启动 API 的两个实例。我不确定发生了什么,但似乎两个测试类都共享静态字段或类似的东西。
无论如何要启动两个完全不同的实例吗?或者其他方式来做到这一点?
我的目标是拥有多个测试类,但都指向同一个 API,并同时运行所有测试,而它们之间不会出现错误。
谢谢
【问题讨论】:
-
你的问题没有任何意义。首先,单元测试不应该使用测试服务器。这将使他们按照定义进行集成测试。如果您打算实际进行集成测试,那么应该没有问题。您实际上并没有处理完整的正在运行的 API。这才是重点。测试服务器将为每个测试用例建立起来,然后拆除。
-
对不起,他错了。我正在做集成测试,因为我正在尝试测试调用 API 的整个过程并在每个测试方法中获取响应。但问题是,当测试并行运行时,我会遇到很多错误,而且永远不会出现同样的错误。似乎 WebApplicationFactory 并没有建立 2 个完全不同的服务器。
标签: unit-testing asp.net-core testing visual-studio-2019 asp.net-core-3.0