在express项目中使用wallaby.js时避免使用EADDRINUSE
我已经在客户端JavaScript使用wallaby.js运气很好,我想尝试让它在我的服务器端JavaScript上工作。 但是,wallaby.js喜欢使用大量的并行Web服务器,这导致了testing的问题,因为它一直在抛出EADDRINUSE
错误。
我的项目的基本脚手架是用Yeoman angular-fullstack生成器完成的 ,所以我的服务器代码位于/server
,大部分方法都在/server/api
。
到目前为止,我已经设法使它适应以下configuration:
module.exports = function () { return { files: [ 'server/**/*.js', { pattern: 'server/**/*.spec.js', ignore: true } ], tests: [ 'server/**/*.spec.js' ], env: { type: 'node', }, debug: true, workers: { initial: 1, regular: 1, recycle: false } }; };
在这里,你可以看到,我正在设置袋鼠工人的数量为1,不允许它回收工人。 它通过第一次正常工作,但是在我开始编辑文件后,我偶尔会EADDRINUSE
错误。
有没有一种首选的方式使用wallaby.js express,并避免在同一端口上产生多个testing服务器进程,从而消除EADDRINUSE
错误?
这个名字有点令人困惑,但是recycle: true
会做伎俩。 recycle: false
意味着一旦启动节点进程将被永久重用。
我知道并不总是可以使用并行进程(特别是使用数据库testing),但为了使其在Web服务器上运行,您可以在运行testing时指定0作为端口,以便随机select一个端口。
var server = require('http').createServer(); server.listen(0);
这样wallaby将能够并行运行你的testing并重用进程。
- NodeJS – 如何在没有module.exports的情况下testingindex.js
- 在CentOS 7上的Spectron无头testing不起作用
- 用mochatestingasynchronous函数
- 是否有任何基准testing显示Node.js 0.6.8每秒可以处理多less个Comet请求?
- 量angular器sendkeys不起作用:键码转换需要x显示
- 使用mocha / chai来确保REST API提供一个文件?
- 摩卡/ Should.js使用asynchronousfunction
- Mocha如何知道在testing套件中首先加载哪个文件
- 在testing中configuration一个单独的Grunt实例