最近、config-jsをJestテストに統合して、構成可能なWebサイトのURLと資格情報を取得しましたが、今では私のテストが完全に完了していません。一般に、コマンドラインからnpm test
を実行し、テストが実行され、コマンドラインプロンプトが返されます。テストでconfig-jsを使用すると、テスト部分は終了しますが、コマンドラインがハングするだけです。プロンプトに戻るにはCtrl + Cキーを押します。 は、私はいくつかの実験をした、と私はこれが原因fs.watchFileのコンフィグ-JSの使用にあるかなり確信している:私はこれらの行をコメントアウトするとノードfs.watchFileがテストを完了しないようにする理由は何ですか?
fs.watchFile(this.pathToConfigFile, function() {
self.loadConfig(self.pathToDefaults, self.pathToConfigFile, self.region);
});
、すべてが正常に動作します。 代わりにfs.watchを使用しようとしましたが、修正されません。 私は実際にテストでconfigファイルの変更やホットリロードを行っていません。
場合、それは便利ですが、ここではテストです:
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"
}
}