React Native, Детокс и Огурец
Введение
В этой статье показано, как настроить приложение React Native с Detox и Cucumber. Эта демонстрация работает только на iOS. Конфиг мультиОС для Огурца с Детоксом не решил, но и времени особо не уделял.
Предпосылки
- Mac (эта демонстрация работает на симуляторе iOS)
- Домашний
- Яблочная бочка
- Xcode и xcode-выбор
- Версия узла, совместимая с React Native
- Версия Ruby, совместимая с React Native
- Экспо-кли
- пряжа
Настройка приложения React Native (пропустите, если у вас есть приложение RN)
В терминале из каталога, который вы хотите сделать родителем своего приложения:
expo init cucumber-detox-demo
Вам будет предоставлен выбор типа приложения, которое вы хотите создать. Для целей этой демонстрации я выбираю:
minimal bare and minimal, just the essentials to get you started
Когда установка выставки завершена:
cd cucumber-detox-demo/ios pod install
Это установит собственные пакеты, которые вам понадобятся для приложения. Теперь, чтобы убедиться, что все работает, запустите:
cd ../ # back to the base cucumber-detox-demo directory yarn ios
Приложение должно собраться и запуститься.
Хорошо, теперь мы можем перейти к детоксу и огурцу.
Настройка детоксикации (пропустите, если у вас уже есть настройка детоксикации)
Все еще в базовом каталоге Cucumber-Detox-Demo установите следующее:
npm install -g detox-cli # global detox command line yarn add detox -D # detox dev dependency yarn add jest -D # jest dev dependency
Теперь давайте настроим детокс:
detox init -r jest
Для этой демонстрации мы используем только конфигурацию iOS, поэтому измените раздел apps.ios файла .detoxrc.json
, чтобы он выглядел следующим образом.
... "ios": { "type": "ios.app", "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/cucumberdetoxdemo.app", "build": "xcodebuild -workspace ios/cucumberdetoxdemo.xcworkspace -scheme cucumberdetoxdemo -configuration Debug -sdk iphonesimulator -arch x86_64 -derivedDataPath ios/build" }, ...
Это дает Detox возможность создавать и находить пакет .app для вашего приложения. Итак, давайте запустим детокс-билд и запустим детокс-тест.
detox build --configuration ios detox test --configuration ios
Тесты не пройдут, потому что в минимальном приложении, которое мы выбрали, нет правильных элементов и текста.
Настройка огурца
Добавьте огурец и регистрацию Babel в свое приложение
yarn add @cucumber/cucumber -D yarn add @babel/register -D
Теперь давайте изменим строку в нашем App.js
, которая имеет <Text>Open up App.js...
, чтобы включить testID
. Теперь должно быть:
<Text testID="welcome">Open up App.js to start working on your app!</Text>
А в файле .detoxrc.json
удалите секцию android
объекта configurations
. Это делается для того, чтобы Detox автоматически выбирал конфигурацию ios
. Результирующий раздел configurations
должен выглядеть так:
Далее давайте напишем простой файл признаков корнишона. Создайте новый каталог с именем cucumber
и добавьте следующий first.feature
файл:
И давайте добавим еще один файл с именем hooks.js
в тот же каталог cucumber
:
Это установка и демонтаж детоксикации с огурцом.
Теперь давайте создадим скрипт для запуска огурца. В вашем package.json
в разделе scripts
добавьте:
"cucumber": "./node_modules/.bin/cucumber-js --require-module @babel/register ./cucumber/*.feature"
Чтобы проверить это, запустите
yarn cucumber
Вы должны получить желтый вывод в своей командной строке, говорящий, что у вас нет шагов, определенных для Given I should see the {string} element
и Then I should see the {string} text
. Итак, давайте создадим файл finders.step.js
в каталоге cucumber
.
Тогда давайте снова запустим yarn cucumber
и посмотрим, как это пройдет!
Репо
Ознакомьтесь с полным репозиторием по адресу: https://github.com/jaydon-peters/cucumber-detox-demo