Nativescript appium 测试安装旧版本

Nativescript appium testing installs old version

我正在使用 nativescript + angular 开发移动应用程序,并且正在使用 Appium 对其进行测试。当我 运行 appium 端到端测试以下命令时,它会加载我的应用程序的先前版本。

tns build android
npm run e2e -- --runType device.samsung

如果我运行模拟器中的应用程序使用以下命令,我会得到最新的更改

tns run android

运行 我的 e2e 在此之后应用程序恢复到旧状态。

我试过从模拟器中卸载应用程序,然后 运行ing 我的 e2e 但是失败了,因为没有安装应用程序。卸载该应用程序后,我发现我必须使用 'tns run android' 命令才能在设备上重新安装该应用程序。

更新:正在检查安装

我已经按照指南检查了我的设置

我检查了我的 appium.capabilities.json 文件

"device.samsung": {
    "platformName": "Android",
    "platformVersion": "7.0",
    "deviceName": "samsung_galaxy_s8",
    "avd": "samsung_galaxy_s8",
    "lt": 60000,
    "newCommandTimeout": 720,
    "noReset": true,
    "fullReset": false,
    "app": ""
},

更新:尝试关闭 devMode

当 运行 进行我的端到端测试时,它说 devMode 已打开,但当我尝试将其关闭时,它仍然说它已打开。

npm run e2e -- --devMode=false --runType device.samsung

更新:noReset 似乎是问题所在

问题是我们想使用 'noReset',因为我们正在尝试测试记住我的自动登录功能,这需要为应用程序保存信息。如果这被重置,那么它就不起作用并且无法测试。如果我们将 'noReset' 设置为 true 那么我们的测试工作但应用程序不会在 运行ning e2e 时更新它也不使用 运行ning 版本。

更新:完整的详细输出

运行宁端到端测试时的完整详细输出 https://gist.github.com/map7/9de70cb330d8864c58787a251d5ea128

开始端到端测试时,我可以看到它加载了我的应用程序 3 次。前两次是正确的版本,最后一次是 运行 应用程序,它是以前的版本,这是 运行 测试的地方。

尝试在项目根目录上运行:

rm -rf node_modules/ package-lock.json platforms/ hooks/
npm install

这将清除所有项目缓存。

终于,重新开始

tns build android
npm run e2e -- --runType device.samsung