如何让 Meteor(客户端)单元测试(使用 Velocity 和 Jasmine)在设备上的 Cordova 中工作?

How can I get Meteor (client) unit tests (using Velocity with Jasmine) to work in Cordova on device?

我有一个移动 Meteor 项目(Cordova + Ionic Framework + Angular-Meteor),单元测试设置为 Velocity and Jasmine。在浏览器中测试时,客户端测试按预期执行但在移动设备上失败。测试服务器托管在本地主机上,因此设备无法找到我托管应用程序和测试服务器的计算机。如何将 Velocity 测试服务器主机从 localhost 更改为我的 LAN IP 地址?

您需要设置 ROOT_URL 环境变量。我发现如果我的主要(不是 unit-testing)Meteor 应用程序从 192.168.0.222:3000 开始服务,那么我的 ROOT_URL 变量应该如下所示:

ROOT_URL="http://192.168.0.222:3000"

速度对客户端和服务器单元测试服务器使用不同的端口。 ROOT_URL 变量中的 3000 将更改为适当的端口,并将使用 192.168.0.222 主机 IP。

下面是我的测试脚本在我的 Android 设备上启动我的应用程序时的样子。特别注意 ROOT_URL 变量:

echo
echo
echo "TIP: If you have changed IPs, delete your app from device first"
MONGO_URL="foo" \
MONGO_OPLOG_URL="bar" \
ROOT_URL="http://192.168.0.222:3000" \
VELOCITY_MONGO_URL="mongodb://127.0.0.1:27017/my_unit_test_db" \
meteor run android-device --mobile-server 192.168.0.222:3000