gpt4 book ai didi

javascript - 为什么 Node fs.watchFile 会阻止测试完成?

转载 作者:搜寻专家 更新时间:2023-11-01 00:37:42 27 4
gpt4 key购买 nike

我最近集成了 config-js进入 Jest 测试以获取可配置的网站 URL 和凭据,但现在我的测试没有完全完成。通常,我从命令行运行npm test,测试执行,并返回命令行提示符。在测试中使用 config-js,测试部分完成,但命令行只是挂起,我必须按 ctrl+c 才能返回到提示符。我做了一些实验,我很确定这是由于 config-js 使用了 fs.watchFile:

fs.watchFile(this.pathToConfigFile, function () {
self.loadConfig(self.pathToDefaults, self.pathToConfigFile, self.region);
});

当我注释掉这些行时,一切正常。我尝试改用 fs.watch,但这并不能解决问题。正如所说,我实际上并没有在我的测试中对配置文件进行任何更改或热重载。

如果有帮助,这里是测试:

const Config = require('config-js');
let myConfig = new Config('./my.config.js');
describe('config test', function () {
it('gets the baseUrl', function() {
expect(myConfig.get('testing.baseUrl')).toEqual('http://foo.com');
});
});

这是配置文件的样子:

module.exports = {
testing: {
baseUrl: "http://foo.com"
}
}

最佳答案

这在 fs.watchFile documentation 中有解释:

persistent <boolean> Indicates whether the process should continue to run as long as files are being watched. Default: true

将持久性选项设置为 false 以允许您的进程在所有其他操作完成后退出:

fs.watchFile(this.pathToConfigFile, {persistent: false}, function () {
self.loadConfig(self.pathToDefaults, self.pathToConfigFile, self.region);
})

关于javascript - 为什么 Node fs.watchFile 会阻止测试完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45703023/

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