- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
虽然我的 detox 在 iOS 上运行良好,但我的 react-native android detox build 在通过 detox cli 打开时会启动一个空白屏幕。
可能值得一提的是 cmd + m
或 rr
在此状态下重新加载。
"react-native": "0.51.0",
...
"detox": "^7.0.0-alpha.0",
...
"android.emu.debug": {
"binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
"build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..",
"type": "android.emulator",
"name": "Nexus_5X_API_26"
},
运行时
detox test -c android.emu.debug --loglevel verbose
android apk 安装、启动,但卡在黑屏。
detox info 15:26:02: server listening on localhost:63324...
detox verb ws onOpen [object Object]
detox verb ws send: {"type":"login","params":{"sessionId":"300068b9-c44f-8b8a-81cb-73f8c66b0752","role":"tester"},"messageId":0}
detox verb ws onMessage: {"type":"loginSuccess","params":{"sessionId":"300068b9-c44f-8b8a-81cb-73f8c66b0752","role":"tester"},"messageId":0}
detox verb ws
detox verb 1: /Users/me/Library/Android/sdk/tools/emulator -list-avds --verbose
detox verb 1: stdout: Nexus_5X_API_26
detox verb 1: stdout:
detox verb /Users/me/Library/Android/sdk/tools/emulator -verbose -gpu host -no-audio @Nexus_5X_API_26
detox verb 2: /Users/me/Library/Android/sdk/platform-tools/adb devices
detox verb 2: stdout: List of devices attached
detox verb 2: stdout: emulator-5554 device
detox verb 2: stdout:
detox verb 2: stdout:
detox verb 3: /Users/me/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell getprop dev.bootcomplete
detox verb 3: stdout: 1
detox verb 3: stdout:
detox verb 4: /Users/me/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell input keyevent 82
detox verb adb -s emulator-5554 shell am instrument -w -r -e detoxServer ws://localhost:63324 -e detoxSessionId 300068b9-c44f-8b8a-81cb-73f8c66b0752 -e debug false com.mypackage.mobile.test/android.support.test.runner.AndroidJUnitRunner
detox verb Instrumentation spawned, childProcess.pid: 24565
detox verb ws send: {"type":"isReady","params":{},"messageId":-1000}
detox verb Instrumentation stdout: INSTRUMENTATION_STATUS: numtests=1
detox verb Instrumentation stdout: INSTRUMENTATION_STATUS: stream=
detox verb Instrumentation stdout: com.mypackage.mobile.DetoxTest:
detox verb Instrumentation stdout: INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
detox verb Instrumentation stdout: INSTRUMENTATION_STATUS: test=runDetoxTests
detox verb Instrumentation stdout: INSTRUMENTATION_STATUS: class=com.mypackage.mobile.DetoxTest
detox verb Instrumentation stdout: INSTRUMENTATION_STATUS: current=1
detox verb Instrumentation stdout:
detox verb Instrumentation stdout: INSTRUMENTATION_STATUS_CODE: 1
detox verb Instrumentation stdout:
2 分钟后
detox verb Instrumentation stdout: INSTRUMENTATION_CODE: 0
detox verb Instrumentation stdout:
detox verb instrumentationProcess terminated due to receipt of signal null
1) "before all" hook: _callee
0 passing (2m)
1 failing
1) "before all" hook: _callee:
Error: Timeout of 120000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
0 passing (2m)
1 failing
1) "before all" hook: _callee:
Error: Timeout of 120000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
从运行 react-native log-android
01-17 15:11:01.053 5248 5318 D ReactNative: Initializing React Xplat Bridge.
01-17 15:11:01.055 5248 5318 D ReactNative: Initializing React Xplat Bridge before initializeBridge
01-17 15:11:01.060 5248 5318 D ReactNative: Initializing React Xplat Bridge after initializeBridge
01-17 15:11:01.061 5248 5318 D ReactNative: CatalystInstanceImpl.runJSBundle()
01-17 15:11:01.061 5248 5323 D ReactNative: ReactInstanceManager.setupReactContext()
01-17 15:11:01.061 5248 5323 D ReactNative: CatalystInstanceImpl.initialize()
01-17 15:11:01.065 5248 5323 D ReactNative: ReactInstanceManager.attachRootViewToInstance()
在上述日志之后的某个时候,应用程序会超时,所以我将其终止。当我从模拟器启动相同的应用程序(detox 安装的相同 apk)时,它按预期工作!
来自 react-native log-android
的日志,当 apk 按预期启动时,有额外的行
01-17 15:24:10.207 6447 6530 I ReactNativeJS: Running application "MyApp" with appParams: {"rootTag":1}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
此时我知道 apk 是好的,所以我尝试了 --reuse
标志但同样的问题。
package com.mypackage.mobile;
import android.support.test.filters.LargeTest;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
import com.wix.detox.Detox;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class DetoxTest {
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class, false, false);
@Test
public void runDetoxTests() throws InterruptedException {
Detox.runTests(mActivityRule);
}
}
有谁知道如何解决这个问题,以便在通过 detox cli 运行时,应用程序将按预期启动,而不是我得到的黑屏?如果没有,我可以采取下一步好措施,将应用程序从 DetoxTest.java 中隔离开来吗?
最佳答案
如果应用没有启动,很可能是因为 Android 应用没有正确构建。你能确保你的“android.emu.debug”正确嵌套在你的package.json
中的detox.configurations下吗
"detox": {
"configurations": {
"android.emu.debug": {
"binaryPath": "android/app/build/outputs/apk/debug/app-debug.apk",
"build": "cd android && ./gradlew assembleDebug assembleAndroidTest -DtestBuildType=debug && cd ..",
"type": "android.emulator",
"name": "Nexus_5X_API_26"
},
}
}
此外,检查以确保您的 android/app/build.gradle
androidTestImplementation(project(path: ":detox"))
androidTestImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test:rules:1.0.1'
关于android - Detox + React Native Android 启动到黑屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48310930/
我想知道如何在 React Native 中默认 AsyncStorage 值以进行排毒测试。 我有一个欢迎模式,显示用户首次登录的时间。我们通过存储 AsyncStorage 值来控制是否显示模态。
我正在尝试获取 react-native "Hello World" app使用 Detox 设置并在 Bitrise.io 上运行。我阅读了 react-native-cli 入门指南,并尝试在 B
这就是我对动画按钮的意思。我让它有一个 ID,但它无法被 Detox 以某种方式定位。 Detox eliminates flakiness by automatically synchronizin
运行 detox test运行套件中的所有测试。有没有办法运行测试的子集?单个测试文件,或单个测试用例。 根据文档,我已将 Detox 配置为使用 Mocha 作为测试运行程序。我知道摩卡有一个 -g
我需要使用 native IOS DatePicker 输入一天。我如何将控制轮旋转到可能不在 View 中的某个值,因为这是从当前日期开始的? 最佳答案 Detox 7.3.x 支持与 iOS 交互
我正在使用 Detox 在 React Native 应用程序上使用以下规范进行 E2E 测试: react native 0.55.4 节点9.2.0 排毒7.3.7 当我在应用程序内的页面上时,我
有没有一种方法可以在不使用 Detox 的情况下检查元素是否存在?现在,我必须将我的逻辑嵌套在 try/catch block 中以控制测试流程,以减轻在继续测试之前检查屏幕状态时的不稳定。我更愿意使
有没有一种方法可以在不使用 Detox 的情况下检查元素是否存在?现在,我必须将我的逻辑嵌套在 try/catch block 中以控制测试流程,以减轻在继续测试之前检查屏幕状态时的不稳定。我更愿意使
我正在尝试使用 device.launchApp({ permissions: { notifications: 'YES' } }) 启用权限,但它似乎没有被调用。 这是我的测试: describe
我正在关注 detox mocking guide与 typescript 。该应用程序始终打印 X.ts 的 console.log文件而不是 X.e2e.ts文件。 依赖版本。 react-nat
使用 detox 运行测试用例时,我面临以下错误。 我安装了所有依赖项作为它的一部分。 Can't find a simulator to match with " iPhone 6 ", run '
我有一个像这样的导航器结构: stack drawer stack tab 我的层次结构是: view view flatlist 我试图让我的平面列表向下滚动。您可以看到手指动画,但列表没有移
我正在使用 Detox在我的 React Native 项目中运行端到端测试。我也在使用假装.js 来模拟我的 API 请求,我正在努力寻找一种方法来了解应用程序当前是否处于“测试”模式。 我正在传递
我目前正在为现有项目设置 Detox 并遇到障碍。 我正在使用 Detox + Jest 并收到错误消息 [Client.js/PENDING_REQUESTS] App has not respon
问题描述: 尝试为 Expo Ejected App 运行排毒测试时,detox build成功,但尝试运行 detox test面临以下错误 DetoxRuntimeError:Detox inst
我已经在 detox repo 上为此创建了一个问题 here . 我有一个使用 Jest 测试的 React Native 应用程序和 Detox . 在本地,Detox 测试运行没有任何问题(也在
描述 在我的混合应用程序中运行 detox 时,detox 在超时之前卡在了 init 上。 [最后一条日志是 detox verb ws send: {"type":"isReady","param
我可以使用 Jest 期望值 ( https://jestjs.io/docs/en/expect ) 而不是 Detox 期望值吗?如果可能的话,你能告诉我怎么做吗?我安装了 Jest runner
我想在我的 react-native 应用程序中运行排毒测试时传递环境变量: "ios.sim.debug": { "binaryPath": "ios/build/Build/Produc
请有人告诉我用于本地排毒测试的模拟文件如何 react ?我在关注 this article 我正在使用 react-native 版本 0.57.7 和 detox 9.1.2 我在根目录中创建了
我是一名优秀的程序员,十分优秀!