undefined局部变量或方法`start_test_server_in_background'for main:Object

时间:2014-06-16 18:36:16

标签: android ruby-on-rails calabash

我尝试在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

有什么问题?

3 个答案:

答案 0 :(得分:1)

首先尝试 - 在控制台中执行unset IRBRC并且仅在启动Calabash之后。

第二个是使用低于2.0的Ruby版本 - 例如1.9.3。

  

使用Ruby 2.0运行时有几个问题。几个证据:

           

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