# File lib/cucumber/core/test/action.rb, line 10 def initialize(location = nil, &block) raise ArgumentError, "Passing a block to execute the action is mandatory." unless block @location = location ? location : Ast::Location.new(*block.source_location) @block = block @timer = Timer.new end
# File lib/cucumber/core/test/action.rb, line 21 def execute(*args) @timer.start @block.call(*args) passed rescue Result::Raisable => exception exception.with_duration(@timer.duration) rescue Exception => exception failed(exception) end
# File lib/cucumber/core/test/action.rb, line 35 def inspect "#<#{self.class}: #{location}>" end
# File lib/cucumber/core/test/action.rb, line 31 def location @location end
# File lib/cucumber/core/test/action.rb, line 17 def skip(*) skipped end
# File lib/cucumber/core/test/action.rb, line 45 def failed(exception) Result::Failed.new(@timer.duration, exception) end
# File lib/cucumber/core/test/action.rb, line 41 def passed Result::Passed.new(@timer.duration) end
# File lib/cucumber/core/test/action.rb, line 49 def skipped Result::Skipped.new end