我得到了语法错误,在下面的tLABEL代码中出现了意外的tLABEL。错误描述指向“超时”之后的“:”。
def self.run(*args, timeout: nil, environment: {})
# ...
end我对Ruby一无所知。我几乎没有尝试过像用“=”代替“:”或在{}中加上“0”之类的东西,但似乎没有什么效果。
我的红宝石版本是2.1.5。
IUQ-mini:~ IUQ$ rbenv versions
system
* 2.1.5 (set by /Users/IUQ/.ruby-version)
2.1.7
2.2.3特定的代码可以找到这里在第38行。
很少有人提出这样的问题,因为错误的大括号可能会导致这种情况发生,但我没有看到错误--同样,我缺乏Ruby知识!
请帮助我理解这一错误的原因,以及如何解决这个问题?
谢谢
发布于 2016-03-18 14:09:55
这在ruby1.9中是行不通的(如果实际上JRuby将您限制在1.9),因为如果它是第一个参数的话,那么splat就会马上有一个散列。
你可以这样做:
def self.run (environment = {}, timeout = nil, *args)
end唯一的问题是,如果您想要传递成为args[]的东西,就必须显式地传递一些东西(甚至为零)。
发布于 2016-03-21 07:34:10
Calabash iOS和Android需要红宝石>= 2.0。
推荐使用最新版本的红宝石。
目前不支持任何版本的JRuby。
特拉维斯建筑
如果您查看该构建的信息,您会发现它失败了,因为它运行在ruby1.9.3上。

我相信您已经安装了ruby2.0。我不认为你在用它。
$ rbenv versions
system
1.8.7-p375
1.9.3-p484
2.0.0-p481
2.1.5
2.2.2
2.2.3
* 2.3.0 (set by /Users/moody/.rbenv/version) <== Active ruby in this dir
jruby-1.7.18
$ rbenv version # Active ruby in this directory
2.3.0您从未提到正在使用的run_loop的哪个版本。您应该更新到最新的稳定版本。
https://github.com/calabash/calabash-ios/wiki/Updating-your-run-loop-version
https://stackoverflow.com/questions/36083640
复制相似问题