Как мне дождаться завершения процесса exec в Jest? - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть следующий тест, но я не могу заставить Джеста ждать завершения моего вызова exec:

var exec = require('child_process').exec

test('render', async () => {
    await exec('./render.local.sh', (err, out) => {
        console.log(err, out)
        expect(...some file to be created)
    });
})

Что мне нужно сделать, чтобы Jest дождался вызова exec callback?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Еще одна возможность, которую я нашел, работает с async

const util = require('util');
const exec = util.promisify(require('child_process').exec);

test('render', async () => {
    const { stdout, stderr } = await exec('./render.local.sh');

    console.log(stdout, stderr);
})  
0 голосов
/ 12 ноября 2018

Вам нужно позвонить done() после подтверждения.

test('render', async (done) => {
    await exec('./render.local.sh', (err, out) => {
        console.log(err, out);
        expect(...some file to be created);
        done();
    });
})

Что пометит тест для завершения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...