Testcafe параллелизм выбрасывает странные ошибки - PullRequest
3 голосов
/ 21 июня 2019

У меня есть набор тестов, которые при запуске без параллелизма все проходят нормально.Когда я запускаю их с параллелизмом, они начинают разваливаться.Я не верю, что у тестов есть взаимозависимости, которые делают их неудачными.Когда тест завершается неудачно, он выглядит следующим образом:

1) A JavaScript error occurred on
  "https://advancedaccount.wistia.io/stats/medias/lz45f2dspl#social".
     Repeat test actions in the browser and check the console for errors.
     If you see this error, it means that the tested website caused it. You can fix it or disable tracking JavaScript errors in TestCafe. To do the latter, enable the
  "--skip-js-errors" option.
     If this error does not occur, please write a new issue at:
     "https://github.com/DevExpress/testcafe/issues/new?template=bug-report.md".

     JavaScript error details:
     undefined:
         No stack trace available

     Browser: Chrome 73.0.3683 / Linux 0.0.0
     Screenshot: /mnt/artifacts/screenshots/Media - Social Stats/142_errors/1.png

        497 |      .expect(socialStatsPage.youtube.likes.textContent).contains('5')
        498 |      .expect(socialStatsPage.youtube.shares.textContent).contains('100')
        499 |      .expect(socialStatsPage.youtube.views.textContent).contains('20')
        500 |      .expect(socialStatsPage.cardError.withProps('vendorName',
  'facebook').exists).ok()
        501 |      .expect(socialStatsPage.cardError.withProps('vendorName',
  'facebook').textContent).contains('It looks like your credentials might be outdated')
      > 502 |      .click(socialStatsPage.reauthorizeAccountLink)
        503 |      .expect(getLocation()).contains('www.facebook.com');
        504 |  });
        505 |
        506 |test
        507 |  .requestHooks(mockFacebookExpired)('Non-account owner expired token', async (t)
  => {

        at click (/usr/src/app/testcafe/tests/media/socialStats.js:502:8)

  2) Unhandled promise rejection:

     { code: 'E1', isTestCafeError: true, callsite: CallsiteRecord { filename:
  '/usr/src/app/testcafe/tests/media/socialStats.js', lineNum: 501, callsiteFrameIdx: 6,
  stackFrames: [ [CallSite], [CallSite], [CallSite], [CallSite], [CallSite], [CallSite],
  [CallSite], CallSite {}, [CallSite], [CallSite], [CallSite], [CallSite] ], isV8Frames: true
  }, errStack: 'undefined:\n    No stack trace available', pageDestUrl:
  'https://advancedaccount.wistia.io/stats/medias/lz45f2dspl#social' }

     Browser: Chrome 73.0.3683 / Linux 0.0.0

Похоже, что когда это происходит, многие, если не все другие одновременные браузеры, также аварийно завершают работу с такой же Unhandled promise rejection диагностикой сбоев и ничем не связанына тест вообще.

Я понятия не имею, с чего начать с отладки этого.Любая помощь будет отличной, потому что я бы хотел, чтобы параллелизм работал.Это происходит локально на моем Mac, а также в нашей настройке CI.

Что действительно странно, так это то, что когда я смотрю на скриншот для теста, все выглядит нормально, поэтому я не могу понять, почемуне удалось в первую очередь.Как я уже сказал, этот тест (и все остальные) проходит хорошо, если нет флага параллелизма.

Любые советы будут высоко оценены.Я использую TestCafé v1.2.1.

...