Предложения о том, как справиться с тестированием EndToEnd для веб-стека React Native + React Native? - PullRequest
0 голосов
/ 02 июля 2019

Интересно, пришли ли другие в это проблемное пространство и каковы были их выводы.

У нас есть нативное + нативное веб-приложение реагирования, которое использует один и тот же код, и мы хотели бы добавить функциональное тестирование, которое также разделяет тот же самый тестовый код, насколько это возможно, с низким уровнем ложноположительных функциональных тестов.

Из моих исследований кажется, что нет решения, которое дало бы мне лучшее из обоих миров (общий тестовый код между веб-интерфейсом и нативным тестом с низким уровнем ложных срабатываний).

Из моего исследования я нашел несколько претендентов, как описано ниже:

Native: Detox, Appium, Cavy
Web: Cypress, TestCafe, Nightwatch, Selenium, Appium
Both: Appium

Похоже, что Appium поддерживает оба, но основан на веб-драйверах, которые имеют неоднозначные отзывы из-за ошибочности веб-драйверов и ложных срабатываний. Кроме того, сколько тестового кода будет на самом деле поделено: мышление.

И теперь другой альтернативой является использование подходящих инструментов, доступных для окружающей среды. Детокс, кажется, хорошее решение для нативных. Он поддерживает IOS и, в основном, Android и работает быстро и не из-за своей «серой коробки». И для Интернета, testcafe или кипарис, кажется, хорошее решение.

К сожалению, не существует решения, которое дало бы лучшее из обоих миров. Хотите знать, есть ли у кого-то еще опыт в этой области, пытаясь управлять тестированием для нескольких платформ?

Буду признателен за некоторые комментарии или даже подтверждения моих выводов.

1 Ответ

0 голосов
/ 02 июля 2019

Я успешно протестировал общие API-вызовы, редукторы и компоненты моего реактивного веб-проекта со следующими инструментами: Jest, Enzyme, redux-mock-store, fetch-mock & jest-localstorage-mock

Важное замечание о файловой структуре: Реактивный проект не может найти папки с символическими ссылками вне src, но проект React может.По этой причине я поместил весь свой общий код, включая все тесты, в myApp/native/src/shared, а myApp/web/src/shared - это просто символическая ссылка на общую папку в собственном каталоге.Помещение общего доступа за пределы сети и нативного, чего я и хотел изначально, не работает.

...