Sha256: 666e6adedd2d9349373f69b37f708f8d7187c9d23ad4ef5145d08a0c875f96ab
Contents?: true
Size: 1.1 KB
Versions: 3
Compression:
Stored size: 1.1 KB
Contents
module CucumberMonitor class FeatureRunner def self.command(feature) "bundle exec cucumber features/#{feature}.feature --format json --out tmp/cucumber.out" end def self.run(options={}) `#{command(options[:name])}` if options.has_key?(:name) end def self.json JSON.parse(File.open(CucumberMonitor::Base.cucumber_output_file).read) end def self.run_and_return_json(options={}) run(options) json prepare end def self.elements json.first['elements'].map{|e| "#{e['keyword']}: #{e['name']}"} end def self.prepare prepared_json = json prepared_json.first['elements'].each do |element| element['steps'].each do |step| description = "#{step['keyword']}#{step['name']}" code_first_part = element['name'].blank? ? element['keyword'].parameterize : element['name'].parameterize code_second_part = description.parameterize code = "#{code_first_part}-#{code_second_part}" step.merge!({ 'description' => description, 'code' => code.parameterize }) end end prepared_json end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cucumber_monitor-0.0.6 | lib/cucumber_monitor/feature_runner.rb |
cucumber_monitor-0.0.5 | lib/cucumber_monitor/feature_runner.rb |
cucumber_monitor-0.0.4 | lib/cucumber_monitor/feature_runner.rb |