首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在快速项目中使用wallaby.js时避免EADDRINUSE

在快速项目中使用wallaby.js时避免EADDRINUSE
EN

Stack Overflow用户
提问于 2015-05-11 21:33:03
回答 1查看 438关注 0票数 5

我很幸运地在客户端JavaScript上使用了JavaScript,并且我想让它在我的服务器端JavaScript上工作。然而,wallaby.js喜欢使用许多并行web服务器,这会给测试带来问题,因为它不断地抛出EADDRINUSE错误。

我的项目的基本脚手架是用约曼角度全叠发生器完成的,所以我的服务器代码位于/server中,大多数方法都在/server/api中。

到目前为止,我已经设法让它在以下配置中工作:

代码语言:javascript
复制
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的首选机制,避免它在同一个端口上生成多个测试服务器进程,从而消除EADDRINUSE错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-12 06:14:41

这个名字有点让人费解,但是recycle: true会起作用的。recycle: false意味着一旦启动节点进程将被永久重用。

我知道使用并行进程并不总是可能的(尤其是使用DB测试),但是要使它在web服务器上工作,您可以在运行测试时指定0作为端口,所以它会选择并使用随机的端口。

代码语言:javascript
复制
  var server  = require('http').createServer();
  server.listen(0);

这样,wallaby就能够并行地运行您的测试并重用进程。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30178023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档