NativeScript Android测试同步后卡顿及设备识别问题求助
解决NativeScript测试卡在fetch context.json及debug-brk设备找不到的问题
嘿,我之前在给NativeScript项目搭Mocha+Chai单元测试的时候,也碰到过几乎一模一样的问题,给你几个亲测有效的解决思路:
一、搞定卡在fetching http://xxx:9876/context.json的问题
这个卡壳通常是测试服务器和模拟器的网络连通性出了问题,或者配置没到位:
- 先查网络通不通:
- 确保你的电脑和模拟器在同一网络(本地模拟器的话127.0.0.1理论上是通的,但偶尔模拟器的网络映射会抽风)
- 直接在模拟器里打开浏览器,输入
http://你的电脑局域网IP:9876/context.json,看看能不能正常返回JSON内容。如果不行,先关掉电脑的防火墙试试,很多时候是防火墙挡住了9876端口的访问。
- 手动指定测试服务器IP:
打开项目根目录的nativescript.config.ts(或者nativescript.config.js),添加测试相关配置,把测试服务器的IP明确写出来:
这样模拟器就不用瞎试各种IP了,直接定位到正确的测试服务器。export default { // 其他原有配置... testOptions: { framework: 'mocha', server: { ip: '你的电脑局域网IP', // 比如192.168.1.105这种 port: 9876 } } } - 清缓存重置环境:
有时候缓存会搞事情,执行这几条命令彻底清一下:tns platform remove android tns platform add android rm -rf node_modules/.cache
二、解决--debug-brk提示找不到设备的问题
这个问题大多是debug模式下设备识别的参数问题:
- 指定设备ID启动debug:
先用tns device命令拿到模拟器的设备ID,比如输出会是这样:
然后带着设备ID启动debug测试:Connected devices & emulators: Android emulator-5554 (emulator-5554)tns test android --debug-brk --device emulator-5554 - 更新NativeScript CLI:
旧版本的CLI偶尔会有设备识别的bug,更新到最新稳定版试试:npm install -g nativescript - 重置ADB连接:
执行adb devices看看模拟器状态,如果显示offline,先重置ADB:
要是还不行,就重启模拟器再试。adb kill-server && adb start-server
最后可以试试完整的重置流程
- 关掉所有模拟器和终端窗口
- 重启电脑(别笑,有时候缓存问题重启最管用)
- 重新启动模拟器
- 再执行
tns test android,要是还有问题就用指定设备ID的debug命令排查
内容的提问来源于stack exchange,提问作者TomB
相关产品推荐
相关产品推荐

