我尝试在Android设备上开发自动测试。 我使用Calabash和Ruby on Rails,版本2.1.2
我执行命令:
calabash-android console aplikacja.apk -p tablet
在此之后我在控制台中执行命令:
/home/maciek/.rvm/gems/ruby-2.1.2/gems/bundler-1.6.2/lib/bundler/runtime.rb:222: warning: Insecure world writable dir /home/maciek/.rvm/gems/ruby-2.1.2 in PATH, mode 040777
/home/maciek/.rvm/gems/ruby-2.1.2/gems/bundler-1.6.2/lib/bundler/runtime.rb:222: warning: Insecure world writable dir /home/maciek/.rvm/gems/ruby-2.1.2 in PATH, mode 040777
2.1.2 :001 >start_test_server_in_background
在此之后我收到错误:
NameError: undefined local variable or method `start_test_server_in_background' for main:Object
from (irb):1
from /home/maciek/.rvm/rubies/ruby-2.1.2/bin/irb:11:in `<main>'
我使用的是真正的设备 - 三星Galaxy Tab 2 7&#34;使用Android 4.1.1
有什么问题?
答案 0 :(得分:1)
首先尝试 - 在控制台中执行unset IRBRC
并且仅在启动Calabash之后。
第二个是使用低于2.0的Ruby版本 - 例如1.9.3。
使用Ruby 2.0运行时有几个问题。几个证据:
- https://github.com/calabash/calabash-android/issues/342
- Install Calabash-Android causes error on OS X Mavericks
我自己也看过同样的行为,版本降级/升级有帮助。但它看起来只与calabash-android有关。
答案 1 :(得分:1)
这是因为rvm将IRBRC变量设置为ruby控制台。如果在打开calabash-console
之前取消设置IRBRC值,它就有效请执行以下步骤:
$ unset IRBRC
$ calabash-android console aplikacja.apk -p tablet
$ start_test_server_in_background
在下方发表评论
答案 2 :(得分:0)
我怀疑问题是这样的:
https://github.com/calabash/calabash-android/pull/383
我认为你可以解决这个问题。
$ IRBRC= calabash-android console aplikacja.apk -p tablet