Module: Cucumber::Formatter::ANSIColor
Overview
This module allows to format cucumber related outputs using ANSI escape sequences.
For example, it provides a ‘passed` method which returns the string with the ANSI escape sequence to format it green per default.
To use this, include or extend it in your class.
Example:
require 'cucumber/formatter/ansicolor'
class MyFormatter
extend Cucumber::Term::ANSIColor
def on_test_step_finished(event)
$stdout.puts undefined(event.test_step) if event.result.undefined?
$stdout.puts passed(event.test_step) if event.result.passed?
end
end
This module also allows the user to customize the format of cucumber outputs using environment variables.
For instance, if your shell has a black background and a green font (like the “Homebrew” settings for OS X’ Terminal.app), you may want to override passed steps to be white instead of green.
Example:
export CUCUMBER_COLORS="passed=white,bold:passed_param=white,bold,underline"
The colours that you can change are:
-
undefined
- defaults toyellow
-
pending
- defaults toyellow
-
pending_param
- defaults toyellow,bold
-
flaky
- defaults toyellow
-
flaky_param
- defaults toyellow,bold
-
failed
- defaults tored
-
failed_param
- defaults tored,bold
-
passed
- defaults togreen
-
passed_param
- defaults togreen,bold
-
outline
- defaults tocyan
-
outline_param
- defaults tocyan,bold
-
skipped
- defaults tocyan
-
skipped_param
- defaults tocyan,bold
-
comment
- defaults togrey
-
tag
- defaults tocyan
To see what colours and effects are available, just run this in your shell:
ruby -e "require 'rubygems'; require 'cucumber/term/ansicolor'; puts Cucumber::Term::ANSIColor.attributes"
Constant Summary collapse
- ALIASES =
Hash.new do |h, k| next unless k.to_s =~ /(.*)_param/ "#{h[Regexp.last_match(1)]},bold" end.merge( 'undefined' => 'yellow', 'pending' => 'yellow', 'flaky' => 'yellow', 'failed' => 'red', 'passed' => 'green', 'outline' => 'cyan', 'skipped' => 'cyan', 'comment' => 'grey', 'tag' => 'cyan' )
Constants included from Term::ANSIColor
Term::ANSIColor::ATTRIBUTES, Term::ANSIColor::ATTRIBUTE_NAMES, Term::ANSIColor::COLORED_REGEXP
Class Method Summary collapse
-
.apply_custom_colors(colors) ⇒ Object
Apply the custom color scheme -> i.e.
Instance Method Summary collapse
- #cukes(amount) ⇒ Object
- #green_cukes(amount) ⇒ Object
- #red_cukes(amount) ⇒ Object
- #yellow_cukes(amount) ⇒ Object
Methods included from Term::ANSIColor
#attributes, included, #uncolored
Class Method Details
.apply_custom_colors(colors) ⇒ Object
Apply the custom color scheme -> i.e. apply_custom_colors(‘passed=white’)
83 84 85 86 87 88 |
# File 'lib/cucumber/formatter/ansicolor.rb', line 83 def self.apply_custom_colors(colors) colors.split(':').each do |pair| a = pair.split('=') ALIASES[a[0]] = a[1] end end |
Instance Method Details
#cukes(amount) ⇒ Object
114 115 116 |
# File 'lib/cucumber/formatter/ansicolor.rb', line 114 def cukes(amount) ('(::) ' * amount).strip end |
#green_cukes(amount) ⇒ Object
118 119 120 |
# File 'lib/cucumber/formatter/ansicolor.rb', line 118 def green_cukes(amount) blink(green(cukes(amount))) end |
#red_cukes(amount) ⇒ Object
122 123 124 |
# File 'lib/cucumber/formatter/ansicolor.rb', line 122 def red_cukes(amount) blink(red(cukes(amount))) end |
#yellow_cukes(amount) ⇒ Object
126 127 128 |
# File 'lib/cucumber/formatter/ansicolor.rb', line 126 def yellow_cukes(amount) blink(yellow(cukes(amount))) end |