简要描述;简介
将测试服务器重置为已知状态会导致我的测试失败,因为 DataTables 实例启动的 Ajax 请求在服务器重置时正在进行。我想通过在服务器重置之前停止 DataTables 请求来防止这种情况。
详细说明
我有一个在某些页面上使用 DataTables 的应用程序。这些数据表都执行服务器端查询来填充它们的表。
当我执行系统测试时,有时会发生竞争情况:
测试运行程序启动测试服务器。
测试运行程序在测试浏览器中加载一个页面,其中某处有一个 DataTable 实例。
测试运行程序运行测试,该测试执行其检查并结束。
测试运行程序将测试服务器重置为已知状态以进行下一次测试。
页面上显示一条警报,指出 DataTables 遇到了 Ajax 错误。警报说:
DataTables 警告:table id=[some id] - Ajax 错误。有关此错误的更多信息,请参阅http://datatables.net/tn/7
- 我的测试系统不期待警报,即使测试实际上是成功的,它也会感到困惑并记录失败。(或者在某些情况下,它会崩溃。)
我知道这是因为服务器突然中断了 Ajax 请求。我正在寻找的是一种防止警报出现的方法。我想在服务器重置之前停止所有正在进行的 DataTables 请求。
解决方案已被拒绝
告诉 DataTables 实例不要使用警报:如果 DataTables 实例遇到与重置测试服务器无关的问题,我希望我的测试大声失败。
修改测试服务器:我更喜欢让服务器保持简单,而不用担心可能无法响应的请求。
等待客户端所有请求结束:这会大大减慢测试速度,尤其是当这种等待重复进行数十次测试时。
将测试浏览器指向一个新页面,上面没有 DataTables,因为这会中断当前请求:这又会损害测试性能。