Предложения о том, как проводить тестирование EndToEnd для веб-стека React Native + React Native?

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

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

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

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

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

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

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

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

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


person dchhetri    schedule 02.07.2019    source источник


Ответы (1)


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

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

person Nunchucks    schedule 02.07.2019
comment
Спасибо за ваше предложение. Эта настройка поможет в модульном тестировании, но для функционального сквозного тестирования не поможет, потому что предлагаемая технология не будет иметь тех же возможностей, которые необходимы для функционального тестирования. - person dchhetri; 02.07.2019
comment
Да, я сомневаюсь, что существует единый надежный инструмент, который можно использовать для сквозного тестирования на всех трех платформах. Похоже, вы уже изучили этот вопрос, прежде чем задавать вопрос :). Если вы все же найдете его, опубликуйте обновление здесь! Мне было бы интересно попробовать самому. - person Nunchucks; 09.02.2021