Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何告诉量角器忽略特定的异步角度任务?_Javascript_Angularjs_Asynchronous_Protractor_Event Stream - Fatal编程技术网

Javascript 如何告诉量角器忽略特定的异步角度任务?

Javascript 如何告诉量角器忽略特定的异步角度任务?,javascript,angularjs,asynchronous,protractor,event-stream,Javascript,Angularjs,Asynchronous,Protractor,Event Stream,我的angularJS应用程序使用事件流,它保持打开http事件流请求和侦听服务器事件。所以我的问题是,当量角器开始测试我的angularJS应用程序时,它会一直等待完成事件流请求,因为我使用的是ignoreSynchronization=false,所以量角器会等待直到超时,因为事件流http请求永远不会完成。所以我想教我的量角器忽略这样的事件流$http任务,继续测试我的应用程序。 这些事件流在我的整个应用程序中实现,所以每次有事件流请求时,量角器就会超时 当超时时,我收到以下错误: 失败:

我的angularJS应用程序使用事件流,它保持打开http事件流请求和侦听服务器事件。所以我的问题是,当量角器开始测试我的angularJS应用程序时,它会一直等待完成事件流请求,因为我使用的是ignoreSynchronization=false,所以量角器会等待直到超时,因为事件流http请求永远不会完成。所以我想教我的量角器忽略这样的事件流$http任务,继续测试我的应用程序。 这些事件流在我的整个应用程序中实现,所以每次有事件流请求时,量角器就会超时

当超时时,我收到以下错误: 失败:等待异步角度任务在300秒后完成时超时。这可能是因为当前页面不是角度应用程序。有关更多详细信息,请参阅常见问题解答:。 以下任务处于挂起状态: -$http:


谁能帮我解决这个问题

在量角器中,可以添加模拟。 所以实际上,您可以做的是添加一些模拟模块来模拟您需要的任何东西

如果问题只是与异步请求计时的超时有关,那么您还可以从
dragrator.config.js
更改超时值,增加超时值

顺便说一下,回到mock,您可以定义mock,并通过
browser.addMockModule
方法将它们添加到量角器中

这里有一篇关于量角器中模拟的好文章:

为了方便您模拟angularjs$http请求,这里有一个很好的npm模块:

这可能是不使用上面的节点模块而直接使用模拟模块的一个小示例:

browser.addMockModule('httpMocker', function() {
  angular.module('httpMocker', ['ngMockE2E'])
  .run(function($httpBackend) {
    $httpBackend.whenGET('MYURL')
    .respond("MOCKED RESPONSE!");
  })
})
您也可以直接在测试中定义mock,但是如果您希望在测试中全局定义mock,我建议您直接在
grandor.config.js
中的
onPrepare
方法中定义mock


我希望这会有所帮助

谢谢@Qurimmo的宝贵回复

通过简单地修改http请求并将超时设置为http请求,我们可以在不使用模拟后端调用的情况下实现超时问题,以便量角器等待直到请求获得我们已经设置的超时(超时将关闭长时间运行的http请求)并执行进一步的语句