【发布时间】:2010-11-27 08:21:40
【问题描述】:
我正在尝试对我编写的 WCF 主机管理引擎进行单元测试。该引擎基本上根据配置动态创建 ServiceHost 实例。这使我们能够动态地重新配置哪些服务可用,而无需在添加新服务或删除旧服务时关闭所有服务并重新启动它们。
但是,由于 ServiceHost 的工作方式,我在对该主机管理引擎进行单元测试时遇到了困难。如果已经为特定端点创建、打开并且尚未关闭 ServiceHost,则无法为同一端点创建另一个 ServiceHost,从而导致异常。由于现代单元测试平台并行执行测试,我没有有效的方法对这段代码进行单元测试。
我使用过 xUnit.NET,希望由于它的可扩展性,我可以找到一种方法来强制它连续运行测试。但是,我没有任何运气。我希望 SO 上的某个人遇到过类似的问题,并且知道如何让单元测试连续运行。
注意:ServiceHost 是一个 WCF 类,由 Microsoft 编写。我没有能力改变它的行为。只托管每个服务端点一次也是正确的行为......但是,它并不是特别有利于单元测试。
【问题讨论】:
-
ServiceHost 的这种特殊行为难道不是您可能想要解决的问题吗?
-
ServiceHost 由 Microsoft 编写。我无法控制它。从技术上讲,这是一种有效的行为……每个端点的 ServiceHost 不应该超过一个。
-
我在尝试在 docker 中运行多个
TestServer时遇到了类似的问题。所以我不得不序列化集成测试。
标签: c# .net unit-testing xunit.net