机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。
排毒
灰盒端到端测试和移动应用自动化框架。
排毒测试是什么样的?
这是一个用于登录屏幕的测试,它可以像真实用户一样在设备/模拟器上运行:
describe('Login flow', () => {
beforeEach(async () => {
await device.reloadReactNative();
});
it('should login successfully', async () => {
await element(by.id('email')).typeText('john@example.com');
await element(by.id('password')).typeText('123456');
const loginButton = element(by.text('Login'));
await loginButton.tap();
await expect(loginButton).not.toExist();
await expect(element(by.label('Welcome'))).toBeVisible();
});
});
关于
高速原生移动开发需要我们采用持续集成工作流程,这意味着我们必须大幅减少对手动质量保证的依赖。Detox 会在你的移动应用运行于真实设备/模拟器中时测试它,与它互动就像真实用户一样。
移动端自动化测试最难的部分是测试金字塔的顶端——端对端(E2E)。端对端测试的核心问题是不稳定——测试通常不是确定性的。我们认为,正面应对不稳定的唯一方法是从黑盒测试转向灰盒测试。这正是Detox发挥作用的地方。
- 跨平台: 用JavaScript为React Native应用(Android和iOS)编写端到端测试。
- Debuggable: 现代异步等待API允许异步测试中的断点按预期工作。
- 自动同步: 通过监控应用中的异步操作,防止核心的不稳定。
- 为CI设计: 在像Travis CI、Circle CI或Jenkins这样的CI平台上进行端对端测试,无需担心。
- 运行于设备: 通过在设备/模拟器上测试应用,就像真实用户一样(iOS尚未支持)来增强发布的信心。
- 测试运行者无关性: Detox 提供了一套 API,供任何没有测试运行者的使用。它开箱即用 [Jest](https://jestjs.io) 集成。
支持的 React Native 版本
Detox 是从零开始构建,以支持 React Native 项目。
虽然 Detox 应该可以与任何最新的 React Native 版本的小型版本直接兼容,但 official 版本的兼容性是根据以下规定提供的:
- RN
v0.77.x-v0.84.x: 完全兼容 React Native 的[“新架构”](https://reactnative.dev/docs/the-new-architecture/landing-page)。较新的 RN 版本可能支持 Detox,但 Detox 团队尚未进行全面测试。
虽然我们不正式支持旧版 React Native,但我们尽力保持 Detox 与它们的兼容性。
如果遇到不支持版本的 React Native,请[提交问题](https://github.com/wix/Detox/issues/new/choose)或在我们的[Discord服务器](https://discord.gg/CkD5QKheF5)写信联系我们,我们将尽力提供帮助。
React Native 已知问题
- Android上的可见性边缘情况:参见这个[RN问题](https://github.com/facebook/react-native/issues/23870)。
开始使用 Detox
阅读[入门指南](https://wix.github.io/Detox/docs/introduction/getting-started),让你在10分钟内完成Detox应用运行。
文档网站
通过我们新的 网站 进一步了解使用 Detox。
核心原则
我们认为,解决移动端端到端测试核心难题的唯一方式是重新思考整个方法的一些原则。看看 Detox 的不同做法。
为 Detox 做贡献
Detox 从第一次提交起就是开源的。如果你有兴趣参与我们的路线图,请查看带有该标签的 issue。如果你遇到 bug 或想建议新功能,请提出一个 issue。
通过阅读 Detox 贡献指南 来深入了解 Detox 核心。
许可证
- Detox 根据 MIT 许可证 获得许可
非英文资源(社区)
- 本文标题:Detox - 针对移动应用的灰盒端到端测试和自动化框架
- 本文链接:https://cn121.com/mobile/wix-detox.html
- 原项目:wix/Detox 版权归原作者 wix 及贡献者所有
- 收录信息:本站于 2026-10-21 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 wix/Detox。
- 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。