unit testing与Mocha OAuth JS

我正在开发基于JS的项目,运行GAE,部分代码使用来自Facebook,Twitter或Google的OAuth获取用户的头像。 我试图在摩卡写testing,以testing这个,但我遇到了一些问题。

当我在前端testing代码时,代码就起作用了,我设想它的工作方式是使用ZombieJS在GAE的dev_appserver.py上运行应用程序,激发OAuth函数,填充相应的auth东西,然后完成通过返回图片url进行testing。

不过,我得到的第一个障碍是NodeJS的服务器似乎不允许GAE的服务器运行在同一个IP地址上。 例如:

 exec 'dev_appserver.py .', -> console.log arguments 

这将返回错误“地址已被使用”。 除了在不同的机器上运行,我怎么能解决这个问题? 是否有可能告诉NodeJS不保留整个IP和只是一个端口? 我在8080上运行GAE,当它没有被NodeJS调用时,它工作正常。

第二个问题是ZombieJS。 我试图找出一种方法,我可以听到新窗口打开时,本质上, tail浏览器的控制台。 我已经开始对Google小组进行两次讨论,但还没有人回复(https://groups.google.com/forum/?hl=en#!topic/zombie-js/cJklyMbwxRE和https://groups.google .com / forum /?hl = en#!topic / zombie-js / tOhk_lZv5eA )

虽然后者并不重要 ,但我可以find解决办法(我希望),前者是主要问题,所以我非常感谢如何解决这个地址冲突的任何方向。

这是我的NodeJS脚本:

 exec = ( require 'child_process' ).exec fs = require 'fs' should = require 'should' yaml = require 'yaml' Zombie = require 'zombie' common = require '../../static/assets/js/common' url = 'ahmeds.local' browser = new Zombie() config = null consoleCb = 'function consoleSuccess(){console.log("success",arguments)}function consoleFailure(){console.log("failure",arguments)}' browser.debug = true browser.silent = false fs.readFile '../../config.yaml', (error, data) -> config = yaml.eval data.toString 'ascii' exec 'cd ../../ && dev_appserver.py -a ' + url + ' .', -> console.log arguments # browser.visit config.local.url, -> browser.visit 'http://' + url + ':8080', -> browser.evaluate consoleCb browser.evaluate 'profileImage("facebook",consoleSuccess,consoleFailure)' console.log browser.window.console.output 

我对NodeJS的熟悉程度有限,但我只是testing了在同一台机器上运行NodeJS服务器和App Engine本地开发服务器 – 它工作得很好。 没有看到你的NodeJS代码,我猜你也试图在端口8080上运行NodeJS,所以App Engine服务器在启动的时候会报错(8080是默认值,你注意到它是你使用的端口)。

尝试传递 – 端口--port=8081 (或其他端口)到您的dev_appserver.py的调用,它应该解决冲突。

你已经显示的代码(除了调用dev_appserver )什么都不应该在任何端口上监听(除非僵尸为远程debugging或类似的东西实现“服务器”)。 看起来港口冲突来自其他地方。

请注意,僵尸自己的Mochatesting框架确实build立了一个快速服务器,所以如果你使用它或从中解除代码,那可能就是这样。

netstat有什么关于谁绑定到什么端口?