1

我们有一个用于 ASP.NET MVC3 网站的 UI 测试套件。我们在测试期间使用 Selenium 和 IIS Express。IIS Express 在第一次测试之前启动,在最后一次测试之后关闭。

因为我们的系统有一些外部依赖项,但是这些与测试 UI 无关,我们一直在尝试使用 Deleporter 来模拟这些依赖项。Deleporter 配置通常在每次测试开始时完成,并且可以正常工作一段时间。但是在执行了一些测试之后,IIS express 进程中的 Deleporter 服务停止工作,客户端无法再访问它。之后,所有后续测试都失败了。有时整个测试套件也会成功执行。

使用 TCPView 查看分配的端口表明,当 Deleporter 服务停止响应时,配置端口上的 TCP 通道实际上已从 IIS Express 进程中消失。知道为什么会这样吗?根据使用的浏览器(Chrome、Firefox、IE),每个测试可能需要 45 秒才能运行,因此调用 Deleporter 服务之间可能有大约 30 多秒的时间。

查看 Deleporter 代码,我可以看到实现了 Deleporter 服务,因此它为 InitializeLifeTimeServices 方法返回 null 并注册为 Singleton 服务。

4

0 回答 0