我已经为 Cucumber 编写了一个小猴子补丁,它可以让它以不同的方式打印出文件路径,这样我就可以在 OSX 终端中 Cmd 双击它们以直接在 TextMate 中打开文件:
module Cucumber
module Ast
class Scenario
alias_method :old_file_colon_line, :file_colon_line
def file_colon_line(*arg)
self.class.textmate_colon_line(old_file_colon_line)
end
def self.textmate_colon_line(file_colon_line)
file, line = file_colon_line.split(':')
'txmt://open?url=file://' + File.expand_path(File.dirname(__FILE__) + '/../../') + '/' + file + '&line=' + line
end
end
end
end
class Proc
alias_method :old_file_colon_line, :file_colon_line
def file_colon_line
Cucumber::Ast::Scenario::textmate_colon_line(old_file_colon_line)
end
end
因为不是我团队中的每个人都在使用 TextMate,所以我想在调用 Cucumber 时使用自定义 --txmt 参数激活这个猴子补丁:
cucumber features/create_task.feature --txmt
这导致:
invalid option: --txmt (OptionParser::InvalidOption)
所以我正在尝试像这样对 Cucumber 进行修补:
module Cucumber
module Cli
class Options
def self.parse!(args)
# Do some stuff
end
end
end
end
但遗憾的是这不起作用,似乎该Cucumber::Cli::Options.parse!
方法没有被这种方法覆盖,而Cucumber::Ast::Scenario
同样的方法似乎有效。
知道为什么吗?非常感谢。