Ошибка детоксикации после открытия приложения Android: не удалось запустить приложение на устройстве.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибка детоксикации после открытия приложения Android: не удалось запустить приложение на устройстве.

Сообщение Anonymous »

Я новичок в Detox и сейчас пытаюсь успешно провести базовый тест.
После запуска теста на детоксикацию --configuration android.emu.debug приложение открывается успешно, но потом просто зависает и в итоге появляется следующие ошибки:
10:56:55.138 detox[51659] B jest --config e2e/jest.config.js
10:56:58.042 detox[51660] i Babel config: myApp sandbox debug
10:56:58.489 detox[51660] i login.test.js is assigned to emulator-5554 (Pixel_7_Pro_API_33)
11:00:07.190 detox[51660] i ToS Accept: should show ToS screen
11:00:07.202 detox[51660] i ToS Accept: should show ToS screen [FAIL]

11:00:07.301 detox[51660] i An error occurred while waiting for the app to become ready. Waiting for disconnection...
error: Failed to run application on the device

HINT: Most likely, your main activity has crashed prematurely.

Native stacktrace dump:
com.wix.detox.common.DetoxErrors$DetoxRuntimeException: Waited for the new RN-context for too long! (180 seconds)
If you think that's not long enough, consider applying a custom Detox runtime-config in DetoxTest.runTests().
at com.wix.detox.reactnative.ReactNativeLoadingMonitor.awaitNewRNContext(ReactNativeLoadingMonitor.kt:60)
at com.wix.detox.reactnative.ReactNativeLoadingMonitor.getNewContext(ReactNativeLoadingMonitor.kt:29)
at com.wix.detox.reactnative.ReactNativeExtension.awaitNewReactNativeContext(ReactNativeExtension.kt:129)
at com.wix.detox.reactnative.ReactNativeExtension.waitForRNBootstrap(ReactNativeExtension.kt:36)
at com.wix.detox.DetoxMain.launchActivity(DetoxMain.kt:127)
at com.wix.detox.DetoxMain.launchActivityOnCue(DetoxMain.kt:53)
at com.wix.detox.DetoxMain.run(DetoxMain.kt:33)
at com.wix.detox.Detox.runTests(Detox.java:126)
at com.wix.detox.Detox.runTests(Detox.java:93)
at de.mcoins.mycompany.DetoxTest.runDetoxTests(DetoxTest.java:27)

11:00:07.362 detox[51660] i The app disconnected.
11:00:07.364 detox[51660] i The pending request #-49642 ("cleanup") has been rejected due to the following error:

The app has unexpectedly disconnected from Detox server.
FAIL e2e/login.test.js (191.641 s)
ToS Accept
✕ should show ToS screen (7 ms)

● ToS Accept › should show ToS screen

thrown: "Exceeded timeout of 120000 ms for a hook.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."

1 | describe('ToS Accept', () => {
> 2 | beforeAll(async () => {
| ^
3 | await device.launchApp();
4 | });
5 |

at beforeAll (e2e/login.test.js:2:3)
at Object.describe (e2e/login.test.js:1:1)

Test Suites: 1 failed, 1 total
Tests: 1 failed, 1 total
Snapshots: 0 total
Time: 191.828 s
Ran all test suites.
11:00:07.491 detox[51659] E Command failed with exit code = 1:
jest --config e2e/jest.config.js

Я просмотрел предыдущие подобные проблемы, но, похоже, у всех что-то не так с настройкой. В моем случае я следовал руководству по настройке Detox и не вижу, чего не хватает.
Мой detoxrc.js:
/** @type {Detox.DetoxConfig} */
module.exports = {
testRunner: {
args: {
'$0': 'jest',
config: 'e2e/jest.config.js'
},
jest: {
setupTimeout: 120000
}
},
apps: {
'myApp.android.debug': {
type: 'android.apk',
binaryPath: 'android/app/build/outputs/apk/myApp/debug/myApp-debug-v504.apk',
testBinaryPath: 'android/app/build/outputs/apk/androidTest/myApp/debug/app-myApp-debug-androidTest.apk',
build: 'cd android && ./gradlew assemblemyAppSandboxDebug assembleAndroidTest -DtestBuildType=debug',
reversePorts: [
8081
]
}
},
devices: {
attached: {
type: 'android.attached',
device: {
adbName: '.*'
}
},
emulator: {
type: 'android.emulator',
device: {
avdName: 'Pixel_7_Pro_API_33'
}
}
},
configurations: {
'ios.sim.debug': {
device: 'simulator',
app: 'ios.debug'
},
'ios.sim.release': {
device: 'simulator',
app: 'ios.release'
},
'android.att.debug': {
device: 'attached',
app: 'myApp.android.debug'
},
'android.att.release': {
device: 'attached',
app: 'android.release'
},
'android.emu.debug': {
device: 'emulator',
app: 'myApp.android.debug'
},
'android.emu.release': {
device: 'emulator',
app: 'android.release'
}
}
};

Мой DetoxTest.java:
package com.example.myApp;

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 // (2)
public ActivityTestRule 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 = (BuildConfig.DEBUG ? 180 : 60);

Detox.runTests(mActivityRule, detoxConfig);
}
}

Мой набор тестов:
describe('ToS Accept', () => {
beforeAll(async () => {
await device.launchApp();
});

beforeAll(async () => {
await device.reloadReactNative();
});

it('should show ToS screen', async () => {
await expect(element(by.id('TosTitle'))).toBeVisible();
});
});



Подробнее здесь: https://stackoverflow.com/questions/783 ... the-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»