1

我已经为 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同样的方法似乎有效。

知道为什么吗?非常感谢。

4

1 回答 1

0

我建议不要使用猴子修补程序,而是使用自定义格式化程序,例如https://github.com/raldred/cucumber_textmate/

然后您可以使用该选项启动黄瓜--format TextmateFormatter

于 2012-07-08T15:55:46.193 回答