undefined局部变量或方法`start_test_server_in_background’for main:Object
我尝试在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 `'
我使用真正的设备 – 三星Galaxy Tab 2 7“与Android 4.1.1
怎么了?
首先要尝试 – 在控制台中执行未unset IRBRC
并且仅在启动Calabash之后。
第二个是使用低于2.0的Ruby版本 – 例如1.9.3。
使用Ruby 2.0运行时有几个问题。 几个certificate:
- https://github.com/calabash/calabash-android/issues/342
- 安装Calabash-Android会导致OS X Mavericks出错
我自己看过同样的行为,版本降级/升级有帮助。 但它看起来只与calabash-android有关。
这是因为rvm将IRBRC变量设置为ruby控制台。 如果在打开calabash-console之前取消设置IRBRC值,它就可以工作
请执行以下步骤:
$ unset IRBRC
$ calabash-android console aplikacja.apk -p tablet
$ start_test_server_in_background
在下面发表评论
我怀疑问题是这样的:
https://github.com/calabash/calabash-android/pull/383
我认为你可以做到这一点来解决这个问题。
$ IRBRC= calabash-android console aplikacja.apk -p tablet