このコードを想像してみてください:
const myFunc = () => exec('node foo.js')
これで、ライブラリはmyFuncを実行しますが、別のスクリプトを実行するかどうかはわかりません。それを知らせる方法は?
PSテストランナー+カバレッジツールであるlibは、テストによって実行されたすべてのコードを知る必要があります。
スクリプトの実行が制御されなくなる可能性のあるAPI呼び出しを検出する必要があり、呼び出しを検出する必要がある場合は、APIにパッチを適用する必要があります。例:
const childProcess = require('child_process');
const { exec } = childProcess;
childProcess.exec = function () {
console.error(new Error('No coverage'));
return exec.apply(this, arguments);
};
これが適用されるglobal.eval
、global.Function
すべてchild_process
のモジュールの機能、一部vm
およびworker_threads
機能。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加