мастер-бегун в тест-кафе для нескольких других бегунов?

У меня есть несколько бегунов, которые используют обещание.race для завершения теста в определенное время. Скажем, у меня есть runner1.js, runner2.js runner3.js, как мне создать главного бегуна, чтобы я мог запускать всех этих бегунов вместе?

const createTestCafe = require('testcafe');
let testcafe = null;

// createTestCafe('localhost', 1337, 1338)
createTestCafe()
    .then(tc => {
        testcafe     = tc;
         //create test runner for configuring and launching test tasks
        const runner = testcafe.createRunner();



    return runner
        //run test from specified folders/files
        .src(['*the path to all runner.js*'])
        //configure the test runner to run tests in the specified browsers
        .browsers('chrome')
        .reporter('html-testrail')
        .run({skipJsErrors:true})             




    })


           .catch(failedCount => {
               console.log('Tests failed: ' + failedCount);
                testcafe.close();
            })

it's not working this way, any suggestions?

person TS0306    schedule 23.09.2019    source источник


Ответы (1)


TestCafe позволяет запускать несколько участников тестирования одновременно. Проверьте следующий код:

const createTestCafe = require('testcafe');

(async () => {
    const testCafe = await createTestCafe();

    const runner1 = testCafe
        .createRunner()
        .src('test1.js')
        .reporter([{ name: 'spec', output: 'report1.txt' }])
        .browsers('chrome');

    const runner2 = testCafe
        .createRunner()
        .src('test2.js')
        .reporter([{ name: 'spec', output: 'report2.txt' }])
        .browsers('firefox');

    await Promise.all([runner1, runner2].map(runner => runner.run()));

    await testCafe.close();
})();
person Andrey Belym    schedule 25.09.2019
comment
@Belym спасибо! Я понял концепцию, но когда я пробую код, который, по вашему мнению, не работает, вы можете указать мне любую документацию в testcafe, в которой есть это, все идеи, почему вы используете карту? мы также можем использовать Promise.all (). тогда? - person TS0306; 08.10.2019
comment
@ TS0306 Я проверил код Андрея, все работает как положено. У нас нет такого случая в нашей документации, но я подтверждаю, что можно использовать несколько бегунов одновременно. Здесь не требуется использовать метод map. Вы можете использовать следующий код: await Promise.all([runner1.run(), runner2.run() ]). Основная идея заключается в том, что метод runner.run возвращает обещание, поэтому вы можете легко использовать его в методе Promise.all(). - person Alex Kamaev; 09.10.2019