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:

我自己看过同样的行为,版本降级/升级有帮助。 但它看起来只与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