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