Несколько бегунов в одном файле дают результаты только первого - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь использовать TestCafe для автоматизации начальной настройки моего проекта.В середине установки перед продолжением установки необходимо выполнить запрос POST, который занимает много времени.Это мой runner.js, и он работает в Узле 10:

const longRunningPostRequest = require('./setup/seed-database');
const createTestCafe = require('testcafe');

const RUN_OPTIONS = {pageLoadTimeout: 120000, selectorTimeout: 15000};

const setupLicense = async () => {
  const testcafe = await createTestCafe('localhost', 1337, 1338, undefined, true);
  const runner = testcafe.createRunner();
  const failedCount = await runner
    .src(['fixtures/setup-license.js'])
    .browsers(['chrome -incognito'])
    .run(RUN_OPTIONS);
  await testcafe.close();
};

const setupData = async () => {
  const testcafe = await createTestCafe('localhost', 1337, 1338, undefined, true)
  const runner = testcafe.createRunner();
  await runner
    .src(['fixtures/setup-wizard.js'])
    .browsers(['chrome -incognito'])
    .run(RUN_OPTIONS);
  await testcafe.close();
};

// running them all in sequence
setupLicense()
  .then(() => longRunningPostRequest()) // long-running POST request. Typically takes around 100 seconds to complete
  .then(() => setupData())
  .catch(err => console.log('Error occured:', err));

Когда я запускаю приложение node runner.js, они работают.Однако отображаются только результаты приборов в setup-license.js, в то время как приборы второго бегуна fixtures/setup-wizard.js не показывают никакого вывода (но они запускаются и работают), но работать с ним очень раздражает, так как еслиэто терпит неудачу, сообщение об ошибке также проглатывается.Обходное решение, которое я сделал, заключалось в том, чтобы закомментировать содержимое устройства setupLicense, чтобы отображались выходные данные setupData.

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 03 января 2019

Попробуйте использовать последнюю версию testcafe@0.23.3.Недавно команда исправила ошибку, которая могла вызвать такие проблемы - TestCafe закрыл поток вывода stdout, когда явный репортер не был указан.Это предотвращает отображение любых результатов теста во втором и последующих сеансах тестирования, начиная с одного файла сценария.

В качестве обходного пути вы можете явно включить репортер spec, добавив вызов .reporter('spec') в свой установочный кодкак показано в этом примере:

gist.github.com / AndreyBelym / c9afd908d4b2891a62a4ba87623ec064

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