为什么我在 AWS Device farm 中收到此错误?由于测试包解析错误而跳过测试。请检查解析结果以获取更多详细信息

Why am I getting this error in AWS Device farm? Tests skipped due to test package parsing error. Please check Parsing result for more details

在 AWS Device Farm 中,我创建了一个新的 运行。我选择了本机应用程序。我上传了我的APK。我选择 Calabash 作为测试。我收到此错误消息:

Tests skipped due to test package parsing error. Please check Parsing result for more details.

我下载了解析结果。内容如下:

Failed to run cucumber dry-run command. See the information below for more details.

解析结果内容如下:

'cucumber --dry-run --format json --out /tmp/scratchvxnAeX.scratch/tmpF6f5Xx' failed.    
Could not find proper version of cucumber (2.99.0) in any of the sources    
Run `bundle install` to install missing gems.

解决方案

我有一些 .rb 页面对象。我在这些文件的顶部添加了 require 'calabash-android'。然后我做了一个新的 运行 和 运行 它。成功了。

我是如何找到解决方案的

通过Google我遇到了CALABASH_TEST_PACKAGE_DRY_RUN_FAILEDhere.

运行 此命令失败:cucumber-ios --dry-run --format json features

我认为那是为了 ios。所以我尝试了这个:bundle exec calabash-android run .\app-releaseStaging.apk --dry-run。我收到此错误:

uninitialized constant Calabash::ABase (NameError)

我在本地 运行ning 时没有收到那个错误。

根据this

-d, --dry-run Invokes formatters without executing the steps. This also omits the loading of your support/env.rb file if it exists.

我在 env.rb 里面有 require 'calabash-android'。所以我把它移到了我的页面对象中。然后就成功了。

您可能会发现 aws-device-farm-calabash-tests-for-sample-app 很有用。