问题标签 [detox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1285 浏览

react-native - 排毒:如何测试多行 TextInput

我正在尝试使用 detox 在我的 react-native 应用程序中测试表单。

表单中的输入之一具有multiline={true}.

我正在尝试运行以下测试:

该测试未能通过 75% 的可见性标准,因为键盘隐藏了提交按钮。

通常对于 TextInput ,multiline={false}您只需附加\n到输入字符串即可自动移动到下一个阶段,但对于多行输入\n,只需添加一个新行。

我该怎么做才能通过这个排毒测试?

0 投票
3 回答
3663 浏览

react-native - 如何判断 Detox 正在运行测试?

我正在使用Detox在我的 React Native 项目中运行端到端测试。我还在使用predicter.js 来模拟我的API 请求,我正在努力寻找一种方法来了解应用程序当前是否处于“测试”模式。

我正在向下传递一个 env 变量(并使用babel-transform-inline-environment-variables)来告诉我是否应该模拟请求,但这会破坏shim.js我们的发布版本。

有什么方法可以告诉 Detox 启动了应用程序并在 JS 中运行测试?理想情况下,我正在寻找在测试时设置的某种变量或从命令行(TESTING=true react-native start__TESTING__)传递的东西

0 投票
1 回答
703 浏览

react-native - 排毒 - 按数字键输入

我想知道如何使用本机键盘输入数字,然后使用“\n”在 Detox 上的普通字符串上像 typeText 一样输入它

// await typeText('${screen_id}_screen_question_${question_id}_answer_input_', '\n');

我怎样才能用数字实现这一点?

每当我执行 typeText ('n') 时,它都会给我GREYKeyboard: No known SHIFT key was found in the hierarchy..

在我的假设中,因为小键盘键没有 Enter 键。但仍然不确定它为什么要寻找 Shift 键。

谢谢

0 投票
0 回答
1073 浏览

react-native - Wix Detox E2E 测试 - 提高速度

我的 E2E 测试目前需要大约 8 分钟进行 24 次测试——它们是非常简单的场景,不应该花费时间。

很多时间都花在点击元素上(我猜它正在等待在 UI Hierarchy 中搜索元素)

有关如何提高性能的任何提示 - 演示似乎非常快,因此我正在做的事情可能是不正确的。

您的 E2E 需要多长时间?当您搜索元素时,您是进行层次搜索还是 id-search?

排毒版本:6.0.2 RN 版本:0.50.4 XCODE:9.2 模拟器:10.3

0 投票
1 回答
2699 浏览

react-native - 如何使用 jest 和 detox 生成代码覆盖率报告?

我使用 jest 进行单元测试,并使用 detox 进行一些自动化(使用 jest 作为测试运行器)。这是我的设置package.json

我想查看合并后的代码覆盖率,我该怎么做?

0 投票
0 回答
967 浏览

testing - 排毒 - 无法在屏幕上找到元素

屏幕

我试图解决Detox - Enter on Numpad的问题,从而导致了这个问题。

根据屏幕,我有一个带数字的输入字段。所以没有回车键或 typeText '\n' 来输入它。所以我想到了点击标题以隐藏键盘的解决方案。但是,即使标题在那里。使用 testID = {..._screen_header_}

它仍然给我一个错误

"Recovery Suggestion" : "检查元素是否存在于下方打印的UI层级中,如果存在,调整匹配器,使其准确匹配元素。" }

Steps to Reproduce 只有一个标题或任何元素,因为这个问题发生在一个地方,它也无法找到屏幕。这意味着排毒框架无法找到该项目。

Detox、Node、Device、Xcode 和 macOS 版本 Detox:5.10 节点:8.7.0 设备:iPhone 7 Xcode:9.1 macOS:10.13.2

0 投票
0 回答
187 浏览

react-native - 当元素不存在时,期望元素不存在超时

我正在尝试验证一个元素不存在。但是当我这样做时:

我收到“错误:超过 240000 毫秒的超时。对于异步测试和挂钩,请确保调用了“done()”;如果返回 Promise,请确保它已解决。”

排毒:5.10.0 节点:5.6.0 设备:iPhone 6s plus(模拟器) Xcode:9.2 macOS:Sierra 10.12.6

设备和详细排毒日志

排毒动词 ws 发送:{"type":"invoke","params":{"target":{"type":"Invocation","value":{"target":{"type":"Invocation", "value":{"target":{"type":"EarlGrey","value":"instance"},"method":"detox_selectElementWithMatcher:","args":[{"type":"Invocation", "value":{"target":{"type":"Class","value":"GREYMatchers"},"method":"detox_matcherForAccessibilityLabel:","args":[{"type":"NSString", "value":"Saldo de conta-corrente"}]}}]}},"method":"atIndex:","args":[{"type":"NSInteger","value":0}]}},"method":"performAction:","args":[{"type":"Invocation","value":{"target":{"type": "Class","value":"GREYActions"},"method":"actionForTap","args":[]}}]},"messageId":10}
排毒动词 ws onMessage: {"type":"invokeResult ","messageId":10,"params":{"result":"(GREYElementInteraction)"}}
排毒动词 wsactionForTap","args":[]}}]},"messageId":10}排毒动词 ws onMessage: {"type":"invokeResult","messageId":10,"params":{"result":" (GREYElementInteraction)"}}排毒动词 wsactionForTap","args":[]}}]},"messageId":10}排毒动词 ws onMessage: {"type":"invokeResult","messageId":10,"params":{"result":" (GREYElementInteraction)"}}排毒动词 ws
排毒动词 ws 发送:{"type":"invoke","params":{"target":{"type":"Invocation","value":{"target":{"type":"Class", "value":"GREYCondition"},"method":"detoxConditionForNotElementMatched:","args":[{"type":"Invocation","value":{"target":{"type":"EarlGrey", "value":"instance"},"method":"detox_selectElementWithMatcher:","args":[{"type":"Invocation","value":{"target":{"type":"Class", "value":"GREYMatchers"},"method":"detoxMatcherForBoth:and:","args":[{"type":"Invocation","value":{"target":{"type":"Class","value":"GREYMatchers"},"method":"detox_matcherForAccessibilityLabel:","args":[{"type":"NSString", "value":"Erro"}]}},{"type":"Invocation","value":{"target":{"type":"Class","value":"GREYMatchers"},"method ":"matcherForNotNil","args":[]}}]}}]}}]}},"method":"waitWithTimeout:","args":[{"type":"CGFloat","value" :0.8}]},"messageId":11}"args":[{"type":"NSString","value":"Erro"}]}},{"type":"Invocation","value":{"target":{"type":"类","值":"GREYMatchers"},"method":"matcherForNotNil","args":[]}}]}}]}}]}},"method":"waitWithTimeout:","args" :[{"type":"CGFloat","value":0.8}]},"messageId":11}"args":[{"type":"NSString","value":"Erro"}]}},{"type":"Invocation","value":{"target":{"type":"类","值":"GREYMatchers"},"method":"matcherForNotNil","args":[]}}]}}]}}]}},"method":"waitWithTimeout:","args" :[{"type":"CGFloat","value":0.8}]},"messageId":11}","args":[{"type":"CGFloat","value":0.8}]},"messageId":11}","args":[{"type":"CGFloat","value":0.8}]},"messageId":11}
1) Saldo conta corrente

排毒动词 ws send: {"type":"cleanup","params":{"stopRunner":false},"messageId":12}
排毒动词 ws onMessage: {"type":"cleanupDone","messageId": 12,"params":{}}
排毒动词 ws

0 通过 (4m)
1 失败

咨询 Saldo
conta corrente:错误:超过 240000 毫秒的超时。对于异步测试和钩子,确保调用了“done()”;如果返回 Promise,请确保它已解决。

0 投票
0 回答
251 浏览

react-native - 使用 React-native detox 覆盖权限

在 react-native android 上使用 detox。了解如何在 android 上为应用程序允许覆盖权限会很有帮助。

0 投票
1 回答
966 浏览

jestjs - 如何将 Jest globalSetup 与 Detox 一起使用

我想将globalSetupglobalTeardownfrom Jest 与 Detox 一起使用,以便 detox 设置只发生一次,但如果 init 不是 beforeAll,则 Detox 似乎会失败。

有什么建议么?

开玩笑版:22.0.4 排毒版:6.0.4

配置:

0 投票
1 回答
4042 浏览

react-native - 在 React Native for android 中使用 detox+Jest 时出现“ReferenceError:设备未定义”

应用程序在 Android 和 iOS 模拟器中运行良好。我正在尝试使用 Jest 设置 Detox 以端到端测试我的 react-native 应用程序。在模拟器中,我可以看到一些动作,但应用程序没有启动,并且出现以下错误(除了“设备未定义”之外,我还收到“app-debug-androidTest.apk:没有这样的文件或目录”错误,所以不确定是什么是这里的根本原因)。

安慰

firstTest.spec.js:

包.json

初始化.js

以下是运行测试命令时的视图 运行测试时的模拟器