При создании CLI я хотел бы проверить свою функцию. Для этого я использую модуль child_process .
const path = require('path');
const { execFile } = require('child_process');
describe('cli test', () => {
test('thing', () => {
const myCli = execFile(
`${path.resolve(__dirname, '..')}/cli.js`, ['--foo', 'Bar'],
(err, stdout, stderr) => {
if (err) {
console.log('err: ', err);
}
});
});
Но это приводит к следующей ошибке:
Attempted to log "err: { Error: spawn /projects/cli/src/cli.js EACCES
at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
at onErrorNT (internal/child_process.js:415:16)
at process._tickCallback (internal/process/next_tick.js:63:19)
errno: 'EACCES',
code: 'EACCES',
Запуск этого скрипта непосредственно в терминале через команда: $ node cli.js --foo Bar
отлично работает.
Теперь советуем chmod +x <file>
этот файл ( source ). Но тест также должен работать на CI и на другом компьютере, который использует репо Git.
Есть идеи?