Tag: 系统测试

如何停止DataTables实例已启动的所有当前正在进行的Ajax查询?

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