我正在尝试单元测试我编写的一个 WCF 主机管理引擎。该引擎基本上是根据配置动态创建 ServiceHost 实例。这使我们可以动态地重新配置哪些服务可用,而无需关闭所有服务,并在添加新服务或删除旧服务时重新启动它们。
然而,由于 ServiceHost 的工作方式,我在对这个主机管理引擎进行单元测试时遇到了困难。如果已经为特定端点创建、打开和尚未关闭 ServiceHost,则无法为同一端点创建另一个 ServiceHost,从而导致异常。由于现代单元测试平台并行化了它们的测试执行,因此我没有有效的方法来对这段代码进行单元测试。
我使用了 xUnit.NET,希望由于它的可扩展性,我可以找到一种方法来强制它串行运行测试。然而,我没有任何运气。我希望在 SO 上有人遇到过类似的问题,并且知道如何让单元测试连续运行。
注意: 服务主机是一个 WCF 类,由 Microsoft 编写。我没有能力改变它的行为。只承载每个服务端点一次也是正确的行为... ... 然而,它并不特别有利于单元测试。