Я начал использовать Detox для создания тестирования пользовательского интерфейса автоматизации для нашего собственного приложения (здесь тестирование на iOS).
Я заметил, что Detox (или Jest) отключается случайным образом.Точно такой же тест иногда проходит, но в другой раз он застревает и не продолжает тест.По истечении времени ожидания Jest я получаю следующую ошибку
Timeout - Async callback was not invoked within the 40000ms timeout specified by jest.setTimeout.
47 | });
48 | describe('when the user taps on the payment history tab', () => {
> 49 | it('should go on the payment history view', async () => {
at Spec (node_modules/jest-jasmine2/build/jasmine/Spec.js:92:20)
at Suite.<anonymous> (e2e/tests/loans/index.test.js:49:7)
Один из моих тестов выглядит так:
it('should go on the payment history view', async () => {
await element(by.id('product-tab-2')).tap();
await waitFor(element(by.id('product-payment-history-1')))
.toBeVisible()
.withTimeout(5000);
await expect(element(by.id('product-payment-history-1'))).toBeVisible();
});
Я попытался использовать флаг «trace», чтобы увидетьесли были какие-либо подробности о том, почему он застревает.Кажется, что некоторые вызовы invoke
пропускаются, и он пытается выполнить следующий тест, прежде чем он фактически завершит предыдущий.3 из 4 раз я бы сказал.
У кого-нибудь есть такая проблема?Есть ли способ это исправить?Или есть способ перезапустить тестовый набор, если что-то зависает?
Спасибо!