测试移动开发质量保障开发工具【免费下载链接】DetoxGray box end-to-end testing and automation framework for mobile apps项目地址https://gitcode.com/gh_mirrors/de/Detox点击查看免费下载本指南基于 Detox 20.x 版本官方文档整理系统梳理了在 macOS / Linux / Windows 上彻底卸载 Detox 时需要处理的全部副作用框架缓存、会话状态文件、克隆模拟器、测试产物残留以及 CLI 工具本身。读完本文你将掌握一套可复制、可验证的干净卸载流程并能对照源码理解每个残留文件与命令的底层作用避免测试环境被历史遗留数据污染。为什么 Detox 卸载不是删除 node_modules这么简单Detox 作为灰盒端到端测试框架其运行机制决定了它会在用户机器上留下多种痕迹安装时通过postinstall脚本编译并缓存Detox.framework每次测试运行时改写设备注册表、全局锁文件等状态文件在 iOS 上为多 worker 并发自动克隆模拟器实例异常退出时残留日志、截图等临时产物若安装了独立 CLI 包还需要单独卸载。在 detox/scripts/postinstall.js 中可以确认安装阶段的行为在 macOS 平台上postinstall会依次执行build_local_framework.ios.sh与build_local_xcuitest.ios.sh把 Detox 框架与 XCUITest 运行器编译进缓存目录同时patchGradleByRNVersion()会按 React Native 版本修正 Android Gradle 配置。该脚本还支持通过环境变量DETOX_DISABLE_POSTINSTALL跳过安装阶段的工作见 detox/package.json 中的postinstall: node scripts/postinstall.js。因此干净卸载应当覆盖以下五类残留本文按官方卸载清单逐项展开。Detox 框架缓存Framework Cache每次安装 Detox 时postinstall脚本都会把Detox.framework构建或解包到~/Library/Detox目录。这是体积最大、最典型的残留物。手动删除直接删除缓存目录即可rm -rf ~/Library/Detox使用官方命令清理更推荐使用官方提供的 CLI 命令detox clean-framework-cache从源码看该命令由 detox/local-cli/clean-framework-cache.js 实现其底层逻辑位于 detox/local-cli/utils/frameworkUtils.js 的clean()函数默认同时清理两个组件getFrameworkDirPath()对应的~/Library/Detox/ios/framework注入的 Detox 库与getXCUITestRunnerDirPath()对应的~/Library/Detox/ios/xcuitest-runnerXCUITest 测试运行器命令仅在 macOS 上生效非 darwin 平台会打印提示并跳过执行shouldSkipExecution()中对os.platform() ! darwin的判断支持按需选择性清理两个布尔选项默认均为false--detox仅清理注入的 Detox 框架--xcuitest仅清理 XCUITest 测试运行器。例如detox clean-framework-cache --detox与之对应的detox rebuild-framework-cache实现见 detox/local-cli/rebuild-framework-cache.js则是先clean再build适用于框架损坏或版本变更后需要重建缓存的场景。测试会话状态文件Test Session State每次测试运行时Detox 都会在DETOX_LIBRARY_ROOT_PATH下改写若干临时文件。从 detox/src/utils/environment.js 可以看出该根目录由appdatapath.appDataPath()拼上Detox子目录构成具体包含device.registry.json—— 设备注册表用于区分忙碌中与可用的设备支撑多 worker 并发测试global-context.json.lock—— 全局锁文件用于检测是否同时启动了多个 Detox 实例防止并发冲突。此外源码中还可以看到同一目录下的其他状态文件apps-cache/—— 按udid与bundleId组织的应用缓存目录global-context.json—— 全局上下文文件锁文件global-context.json.lock正是围绕它建立的last-failed.txt—— 最近一次失败的测试记录。其中device.registry.json的实际消费方是 detox/src/devices/allocation/DeviceRegistry.js它通过ExclusiveLockfile见 detox/src/utils/ExclusiveLockfile.js对注册表做互斥访问保证多 worker 场景下设备分配的原子性。各平台下DETOX_LIBRARY_ROOT_PATH的位置DETOX_LIBRARY_ROOT_PATH的具体位置因操作系统而异其判定逻辑完整实现在 detox/src/utils/appdatapath.js 中macOS~/Library/DetoxLinux若定义了$XDG_DATA_HOME$XDG_DATA_HOME/Detox否则~/.local/share/DetoxWindows若定义了%LOCALAPPDATA%%LOCALAPPDATA%\data\Detox否则%USERPROFILE%\Application Data\Detox。做完整卸载时可以手动删除对应路径下的device.registry.json、global-context.json*等状态文件或直接清理整个 Detox 数据目录。克隆的模拟器实例macOS为了在 iOS 上支持多 worker并行特性当可用模拟器数量不足时Detox 会克隆模拟器实例。这些自动生成的模拟器名称带有-Detox后缀便于识别。这一点在 detox/src/devices/common/drivers/ios/tools/AppleSimUtils.js 的create()方法中有直接体现它执行simctl create ${deviceName}-Detox ...来创建克隆实例。找出克隆模拟器xcrun simctl list | grep -Detox删除指定模拟器将上一步查到的 UUID 代入以下命令xcrun simctl delete uuidsimctl delete是 Xcode 自带的模拟器管理命令会彻底移除指定 UDID 对应的模拟器及其数据。测试产物残留Artifacts Remnants强制退出如 CtrlC、进程被杀可能导致临时文件残留。按平台分别处理iOS清除临时目录中的 Detox 产物日志、截图等rm -rf $TMPDIR/*.detox.*如果需要把某个模拟器上安装的应用与自定义设置一并还原为出厂状态可对其执行擦除xcrun simctl erase uuid注意erase与delete的区别erase保留模拟器本身、仅清空其内容与已安装应用delete则移除整个模拟器。AndroidAndroid 虚拟设备AVD的处理思路与 iOS 一致。要擦除某个 AVD 的用户数据运行emulator -avd your_AVD -wipe-data若只需清理某个已启动设备上的 Detox 临时文件可关注/sdcard目录下形如11159175_0.log的文件。这类文件遵循数字下划线数字的命名模式可以用通配符批量删除也可自行定制更精确的模式adb -s emulator-port shell rm -rf /sdcard/*_*.*其中emulator-port是 adb 连接模拟器所用的端口号通常为5554、5556等可通过adb devices查询。卸载独立 Detox CLI若你通过全局方式安装过官方 CLI 包装包detox-cli它与 Detox 主包分离提供detox命令入口请务必一并卸载npm uninstall detox-cli --global该独立包的入口实现位于 detox-cli/cli.js。若你的detox命令来自项目本地依赖node_modules/.bin/detox则删除项目目录并重新安装依赖即可无需执行此步。卸载检查清单速查完成一次彻底的 Detox 清理建议按以下顺序核对清理项平台操作框架缓存macOSdetox clean-framework-cache或rm -rf ~/Library/Detox会话状态文件全部按平台删除DETOX_LIBRARY_ROOT_PATH下的device.registry.json、global-context.json*等克隆模拟器macOSxcrun simctl list \| grep -Detox后逐个xcrun simctl delete uuidiOS 临时产物macOSrm -rf $TMPDIR/*.detox.*必要时xcrun simctl erase uuidAndroid 产物Linux/macOSemulator -avd your_AVD -wipe-dataadb -s emulator-port shell rm -rf /sdcard/*_*.*独立 CLI全部npm uninstall detox-cli --global上述所有命令、路径与文件名的依据均可回溯至仓库源码detox/src/utils/appdatapath.js平台路径判定、detox/src/utils/environment.js状态文件与缓存路径定义、detox/local-cli/utils/frameworkUtils.js缓存清理实现以及 detox/src/devices/common/drivers/ios/tools/AppleSimUtils.js克隆模拟器命名。如果你还想了解与清理配套的构建命令可参考 docs/cli/clean-framework-cache.md 中clean-framework-cache的完整选项说明。赞分享测试移动开发质量保障开发工具【免费下载链接】DetoxGray box end-to-end testing and automation framework for mobile apps项目地址https://gitcode.com/gh_mirrors/de/Detox点击查看免费下载相关推荐Detox 移动端 E2E 测试框架卸载完全指南清理框架缓存、测试状态与设备残留Detox 移动端 E2E 测试框架卸载完全指南清理框架缓存、测试状态与设备残留 导读 Detox 是一款灰盒Gray box移动端端到端测试与自动化框架测试移动开发质量保障开发工具Detox 卸载与清理完全指南清除框架缓存、测试状态与模拟器残留Detox 卸载与清理完全指南清除框架缓存、测试状态与模拟器残留 Detox 作为移动端灰盒端到端测试框架在安装与使用过程中会不可避免地留下各类副作用测试移动开发质量保障开发工具Vue Antd Admin快速入门5分钟搭建现代化管理后台Vue Antd Admin快速入门5分钟搭建现代化管理后台 Vue Antd Admin是基于Ant Design Pro实现的Vue管理后台解决方案它提创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考