- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在客户端 JavaScript 上使用 wallaby.js 非常幸运,我想尝试让它在我的服务器端 JavaScript 上运行。但是,wallaby.js 喜欢启动大量并行 Web 服务器,这会导致测试出现问题,因为它会不断抛出 EADDRINUSE
错误。
我的项目的基本脚手架是用 Yeoman 完成的 angular-fullstack generator ,所以我的服务器代码位于 /server
中,大多数方法都位于 /server/api
中。
到目前为止,我已经设法让它可以使用以下配置:
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
}
};
};
在这里你可以看到我将 wallaby worker 的数量设置为 1,并且不允许它回收 worker。第一次运行良好,但在我开始编辑文件后,我偶尔会遇到 EADDRINUSE
错误。
是否有一种首选机制可以将 wallaby.js 与 express 一起使用并避免它在同一端口上生成多个测试服务器进程,从而消除 EADDRINUSE
错误?
最佳答案
这个名字有点令人困惑,但是 recycle: true
可以解决问题。 recycle: false
表示一旦启动 Node 进程将永远重复使用。
我知道使用并行进程并不总是可行的(尤其是数据库测试),但要使其适用于 Web 服务器,您可以在运行测试时指定 0 作为端口,这样它会随机选择并使用一个。
var server = require('http').createServer();
server.listen(0);
这样 wallaby 将能够并行运行您的测试并重用流程。
关于node.js - 在 express 项目中使用 wallaby.js 时避免使用 EADDRINUSE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30178023/
在我编写测试用例的测试文件中,我导入了如下 typescript 文件: import {rootReducer} from "../src/reducers/rootReducer"; 在 root
我是 Elixir/Phoenix 的新手,所以我不确定这是否按预期工作或我应该解决的问题。 我有一个 Phoenix 应用程序,我刚刚开始向其添加集成测试。在设置和测试用户注册功能几天后,我现在开始
我正在尝试使用 Browserify 和 Wallabify 让 Wallaby 与 TypeScript 应用程序一起工作。但是,当我运行 Wallaby 时,它输出 No failing test
我有一个构造数组的函数,例如[{index: 1}, {index: 4}, {index: 7}]。该数组按对象的索引值排序。我已将函数的范围缩小到仅对数组进行排序,wallaby 指示数组的顺序不
我在客户端 JavaScript 上使用 wallaby.js 非常幸运,我想尝试让它在我的服务器端 JavaScript 上运行。但是,wallaby.js 喜欢启动大量并行 Web 服务器,这会导
我似乎设置了 wallable 错误。 错误: ReferenceError: Can't find variable: Map at src/app/home/home.component.spec
我是一名优秀的程序员,十分优秀!