Detox em aplicações React Native 설정

Em setembro do ano passado a Rocketseat lançou um Code/drops#101 ensinando a configurar e rodar testes no React Native usando detox. iIOS, 안드로이드, apenas에 대해 생각하는 튜토리얼에 대해 알아보십시오. 이 문서는 iIOS가 아닌 Android quanto가 아닌 maneira fácil, rodar testes e2e tanto, você que você consiga de maneira fácil에 대한 passo para que você passo para que décidir 문서입니다. 건조한 찬 바람?

github에 있는 애플리케이션의 저장소: codedrop-teste2e

암비엔테



Na raiz do seu terminal, instale o detox-cli globalmente

 npm install -g detox-cli


Na raiz do seu projeto, instale o detox e o jest como dependsências de desenvolvimento

 yarn add detox jest -D


기계적 인조 인간



1. 나 파스타 Android > build.gradle



Dentro de repositories, adicione o bloco maven .

allprojects {
    repositories {
                ...
                // adicione apenas o bloco maven abaixo
        maven {
            // Add to detox
            url "$rootDir/../node_modules/detox/Detox-android"
        }
    }
}


2. 나 파스타 Android > App > build.gradle



Adicione as novas dependsências necessárias para rodar os testes no android

android {
    defaultConfig {
                ...
        // Novas dependencias para rodar os testes.
        testBuildType System.getProperty('testBuildType', 'debug')
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
    }
}



메시지 없음, 추가:

dependencies {
        // Novas dependencias para rodar os testes.
    androidTestImplementation('com.wix:detox:+') { transitive = true }
    androidTestImplementation 'junit:junit:4.12'
}


4. 안드로이드 테스트 테스트 설정



Agora, vamos criar um arquivo chamado DetoxTest.java no seguinte caminho:android/app/src/androidTest/java/com/[nome_do_package]/DetoxTest.java
package com.package; // Trocar pelo no do Projeto.

import com.wix.detox.Detox;
import com.wix.detox.config.DetoxConfig;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.LargeTest;
import androidx.test.rule.ActivityTestRule;

@RunWith(AndroidJUnit4.class)
@LargeTest
public class DetoxTest {
    @Rule
    public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class, false, false);

    @Test
    public void runDetoxTests() {
        DetoxConfig detoxConfig = new DetoxConfig();
        detoxConfig.idlePolicyConfig.masterTimeoutSec = 90;
        detoxConfig.idlePolicyConfig.idleResourceTimeoutSec = 60;
        detoxConfig.rnContextLoadTimeoutSec = (com.package.BuildConfig.DEBUG ? 180 : 60);

        Detox.runTests(mActivityRule, detoxConfig);
    }
}


아이폰 OS



터미널을 설치하거나 다음을 실행합니다.

brew tap wix/brew
brew install applesimutils


설정 해독



Iniciando com detox

yarn detox init -r jest


.detoxrc.json 또는 .detoxrc.json

{
  "testRunner": "jest",
  "runnerConfig": "e2e/config.json",
  "configurations": {
    "android.emu.debug": {
      "type": "android.emulator",
      "binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
      "build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..",
      "device": {
        "avdName": "Pixel_5_API_31" // your avd-name here
      }
    },
    "ios.sim.debug": {
      "type": "ios.simulator",
      "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/yourProject.app",
      "build": "xcodebuild -workspace ios/yourProject.xcworkspace -scheme yourProject -sdk iphonesimulator -derivedDataPath ios/Build",
      "device": {
        "type": "iPhone 11"
      }
    }
  },
}


Gerando a build para teste




No Android:
yarn detox build -c android.emu.debug

No iOS:
yarn detox build -c ios.sim.debug


Detox에서 고환 실행




No Android:
yarn detox test -c android.emu.debug

No iOS:
yarn detox test -c ios.sim.debug


🚨 xcode 문제 🚨



Caso você tenha um problema no build ios, tente mudar o caminho da 파스타 빌드는 이미지 abaixo를 준수합니다.

xcode 액세스 파일 > xcoworkspace 설정 > 고급 > 사용자 정의 메뉴가 없습니다.

좋은 웹페이지 즐겨찾기