gpt4 book ai didi

node.js - Nodejs、moch/chai 在 macOS 上失败并显示 "Segmentation fault: 11"

转载 作者:太空宇宙 更新时间:2023-11-03 23:26:36 25 4
gpt4 key购买 nike

我正在 macOS 10.12.4 上为基于 Nodejs (6.10.2) 的应用程序运行基于 mocha/chai (3.2.0/3.5.0) 的测试用例,并且遇到“段错误:11”故障。

到目前为止我已经尝试过:

  • 删除我的 node_modules 文件夹并执行新的 npm install
  • 检查过时的依赖项并升级它们
  • 通过sudo port升级nodejs6升级nodejs版本(使用6.7.0)

对我来说失败的代码如下。

    chai.request(url)
.post(`/api/filestore?token=${token}`)
.timeout(20000)
.attach('file', fs.readFileSync(filepath), filename)
.field('name', data.name)
.field('description', data.description)
.field('keywords', data.keywords)
.end(function(err, res) {
if (err) { done(err); }
res.should.have.status(200);
res.should.be.json;
res.body.should.have.property('name');
res.body.should.have.property('description');
res.body.should.have.property('categories');
res.body.keywords.should.be.a('array');
res.body.keywords.join(',').should.be.equal(data.keywords);
done();
});

当我删除“附加”行时,段错误消失:

.attach('file', fs.readFileSync(filepath), filename)

我已经单独尝试了fs.readFileSync(filepath),但没有遇到该问题。

这在过去不是一个问题,直到最近才成为一个问题。我想知道这是否与操作系统的升级同时发生,但我不能确定。测试文件大小仅为34K。

有人有什么建议吗?

编辑:在 Ubuntu 测试机上失败并出现段错误。

最佳答案

看起来 chai 代码是一个“红鲱鱼”。使用segfault-handler Node 模块,我能够确定问题实际上是由正在测试的项目中的代码引起的(它在同一进程中运行)。

就我而言,堆栈跟踪表明问题是由 sqlite3 代码中的某些内容引起的。进一步调查显示,这是由于未处理传递给 Promise.mapSeries 的函数中的返回值,该函数正在通过 Sequelize 执行 sqlite SQL 操作。

请注意,我正在使用 bluebird 来实现我的 promise 。

关于node.js - Nodejs、moch/chai 在 macOS 上失败并显示 "Segmentation fault: 11",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43424856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com