кукольник закрывает браузер перед запуском всех шутливых тестов - PullRequest
1 голос
/ 08 января 2020

Шаги для воспроизведения

Не удастся выполнить 31 тест из 122 тестов

Сообщить нам о вашей среде:

Какие шаги приведут к возникновению проблемы? npm run test:e2e

Пожалуйста, включите код, который воспроизводит проблему.

  1. https://github.com/anikethsaha/docsify/blob/e2e-test-puppeteer/e2e/ tests / sideBar.spe c. js 2. 3.

Каков ожидаемый результат? Должны быть выполнены все контрольные примеры 122

Что происходит вместо ? Но вместо этого он запускает только 31 тест, и после этого браузер закрывается, а остальные 91 тест не запускаются

Контекст

Я использую live-server для запуска сервера, который будет обслуживать мои файлы, и это делается в пользовательской среде jest. У меня есть файл sideBar.spec.js, который проверяет все ссылки на боковой панели, щелкая их, а затем делает снимок, используя jest-image-snapshot. В этом тесте я нажимаю на все возможные ссылки привязки, используя метод page.click. остальные 91 тест не выполняется. Я увеличил время ожидания до 300 se c, но, тем не менее, он останавливается до этого.

Я видел странное поведение, то есть боковая панель снабжена кнопкой переключения. Таким образом, по умолчанию эта боковая панель открыта. Но прежде чем выйти из браузера, нажмите IDK, но он переключает боковую панель, чтобы закрыть ее, а затем закрывает браузер. проверить тесты для sideBar.spec.js Вы можете найти поведение теста здесь https://travis-ci.org/docsifyjs/docsify/jobs/631003978?utm_medium=notification&utm_source=github_status

1 Ответ

0 голосов
/ 09 января 2020
Браузер

не закрывается перед выполнением всех тестов, это не так. в beforeAll hook добавьте параметр browser = await puppeteer.launch({headless: false}), это всегда легче, когда вы видите, что происходит.

Я играл некоторое время с вашим кодом и проверял в консоли, действительно ли селекторы, на которые вы пытаетесь нажать, действительно существуют, и они появляются они не. (также вы можете ясно видеть это в предоставленных вами журналах: Node is either not visible or not an HTMLElement et c)

например:

const cdnIds = [
 'latest-version',
 'specific-version',
 'compressed-file',
 'other-cdn'
]
cdnIds.forEach(id => {
 test('go to #cdn?id=' + id, async done => {
   await page.click(`a.section-link[href='#/cdn?id=${id}']`)
   const ss = await page.screenshot()
   expectThres(ss)
   done()
 })
})

нет соответствующего селектора, такого как a.section-link[href='#/cdn?id=other-cdn'] или a.section-link[href^='#/cdn'] <- второй должен соответствовать каждому массиву cdnIds. Я думаю, вам нужно переписать свои тесты. удачи </p>

...