UnderpantsGnome-autotest-growl 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt ADDED
@@ -0,0 +1,5 @@
1
+ == 0.1.0 2009-05-28
2
+
3
+ * Initial release
4
+ * Growl notifications for Test::Unit, RSpec and Cucumber (workaround)
5
+ * Formerly part of autotest-mac which is now deprecated
data/Manifest.txt ADDED
@@ -0,0 +1,18 @@
1
+ History.txt
2
+ Manifest.txt
3
+ PostInstall.txt
4
+ README.rdoc
5
+ Rakefile
6
+ growl/growlnotify
7
+ img/error.png
8
+ img/failed.png
9
+ img/passed.png
10
+ img/pending.png
11
+ lib/autotest/growl.rb
12
+ script/console
13
+ script/destroy
14
+ script/generate
15
+ spec/autotest-growl_spec.rb
16
+ spec/spec.opts
17
+ spec/spec_helper.rb
18
+ tasks/rspec.rake
data/PostInstall.txt ADDED
@@ -0,0 +1,24 @@
1
+
2
+ +--------------------------------------------------------------------------+
3
+ | |
4
+ | In order to use autotest-growl, the following line has to be added |
5
+ | to the top of ~/.autotest file: |
6
+ | |
7
+ | require 'autotest/growl' |
8
+ | |
9
+ | IMPORTANT: If you use ZenTest-4.0.0, this won't work. See the README |
10
+ | for further instructions. |
11
+ | |
12
+ | Make sure Growl is installed on your computer. Download it from: |
13
+ | |
14
+ | http://growl.info |
15
+ | |
16
+ | If Growl notifications are not always displayed, take a look at the |
17
+ | README for help. |
18
+ | |
19
+ | For more information, feedback and bug submissions, please visit: |
20
+ | |
21
+ | See http://www.bitcetera.com/products/autotest-growl |
22
+ | |
23
+ +--------------------------------------------------------------------------+
24
+
data/README.rdoc ADDED
@@ -0,0 +1,138 @@
1
+ = Autotest Growl
2
+
3
+ * Homepage: http://www.bitcetera.com/products/autotest-growl
4
+ * Issues and forum: https://forge.bitcetera.com/projects/show/autotest-growl
5
+
6
+ == DESCRIPTION:
7
+
8
+ This gem aims to improve support for Growl notification by ZenTest's autotest.
9
+ It comes with a nice colored Ruby icon set and - for now - supports Cucumber
10
+ notifications by means of a workaround.
11
+
12
+ Furthermore the terminal running autotest is cleared on every cycle. Don't
13
+ worry though, it's still possible to scroll up to see the output of previous
14
+ cycles.
15
+
16
+ === Ruby 1.9.1 Note
17
+
18
+ For the moment, autotest-growl doesn't seem to work on Ruby 1.9.1. This will
19
+ change soon, however, it will take a few days as autotest itself is currently
20
+ misbehaving - at least on my setup.
21
+
22
+ == REQUIREMENTS:
23
+
24
+ * Growl >= 1.1.4
25
+ * ZenTest >= 4.0.0
26
+
27
+ == INSTALL:
28
+
29
+ Make sure Growl is installed on your computer. You can download it from:
30
+
31
+ http://growl.info
32
+
33
+ Now install the gem:
34
+
35
+ sudo gem install autotest-growl
36
+
37
+ === With ZenTest >4.0.0
38
+
39
+ Add the following line to your ~/.autotest file:
40
+
41
+ require 'autotest/growl'
42
+
43
+ === With ZenTest 4.0.0
44
+
45
+ ZenTest comes with a bundled Growl plugin which will be removed in the
46
+ near future. If you use ZenTest-4.0.0 or older, the above require won't do
47
+ the trick, instead do the following:
48
+
49
+ Find the full path to autotest-growl:
50
+
51
+ find /Library/Ruby /usr -name growl.rb | grep "gems/autotest"
52
+
53
+ Then add the output of the above to your ~/.autotest file:
54
+
55
+ require '--PUT-OUTPUT-HERE--'
56
+
57
+ == CONFIGURATION:
58
+
59
+ === Custom Icons
60
+
61
+ Using your own set of icons is pretty simple. Just create a directory
62
+ ~/.autotest-growl, copy your icons there and name them passed.png,
63
+ pending.png, failed.png and error.png.
64
+
65
+ === Hide the Label
66
+
67
+ If you prefer the Growl notifications not to show labels such as "LABEL:
68
+ All tests have passed", add the following to your ~/.autotest:
69
+
70
+ Autotest::Growl::hide_label = true
71
+
72
+ === Don't clear the screen on each run
73
+
74
+ Autotest::Growl::clear_before_run = false
75
+
76
+ === Wrap the message on commas
77
+
78
+ Autotest::Growl::wrap_lines = true
79
+
80
+ === Try and make the message a little more readable
81
+
82
+ Setting this true sets wrap_lines to false as they don't play nice together
83
+
84
+ Autotest::Growl::pretty_print = true
85
+
86
+ == TROUBLESHOOTING:
87
+
88
+ === Missing Cucumber Notifications
89
+
90
+ If you are using autotest-fsevent as well, the require statements are not
91
+ ordered correctly. The require for autotest-fsevent must come after all
92
+ other requires in your ~/.autotest.
93
+
94
+ === Unreliable Growl Notifications
95
+
96
+ Under some circumstances, Growl notifications seem to be swallowed randomly.
97
+ If this happens to you, try the following.
98
+
99
+ Add this to your ~/.autotest:
100
+
101
+ Autotest::Growl::remote_notification = true
102
+
103
+ Now open "System Preferences -> Growl -> Network" and set the checkboxes
104
+ "Listen for incoming notifications" and "Allow remote application
105
+ registration”. Try whether remote notifications work with the following
106
+ test:
107
+
108
+ find /Library/Ruby /usr -name growlnotify -exec {} -H localhost -n autotest -m ok \;
109
+
110
+ If you get a NSPortTimeoutException, you should restart Growl and check
111
+ whether a firewall is blocking the connection. Once the notification is
112
+ displayed, go back to the System Preferences and disable the checkbox
113
+ "Allow remote application registration" again.
114
+
115
+ == LICENSE:
116
+
117
+ (The MIT License)
118
+
119
+ Copyright (c) 2009 Sven Schwyn
120
+
121
+ Permission is hereby granted, free of charge, to any person obtaining
122
+ a copy of this software and associated documentation files (the
123
+ 'Software'), to deal in the Software without restriction, including
124
+ without limitation the rights to use, copy, modify, merge, publish,
125
+ distribute, sublicense, and/or sell copies of the Software, and to
126
+ permit persons to whom the Software is furnished to do so, subject to
127
+ the following conditions:
128
+
129
+ The above copyright notice and this permission notice shall be
130
+ included in all copies or substantial portions of the Software.
131
+
132
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
133
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
134
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
135
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
136
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
137
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
138
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,29 @@
1
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
2
+ %w[rake rake/clean fileutils newgem rubigen].each { |f| require f }
3
+ require File.dirname(__FILE__) + '/lib/autotest/growl'
4
+
5
+ $hoe = Hoe.new('autotest-growl', Autotest::Growl::VERSION) do |p|
6
+ p.developer('Sven Schwyn', 'ruby@bitcetera.com')
7
+ p.summary = %q{Next generation Growl notification support for ZenTest's autotest.}
8
+ p.description = %q{This gem aims to improve support for Growl notification by ZenTest's autotest. It comes with a nice colored Ruby icon set and - for now - supports Cucumber by means of a workaround.}
9
+ p.url = %q{http://www.bitcetera.com/products/autotest-growl}
10
+ p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n")
11
+ p.post_install_message = File.read('PostInstall.txt')
12
+ p.rubyforge_name = p.name
13
+ p.extra_deps = [
14
+ ['ZenTest','>= 4.0.0'],
15
+ ]
16
+ p.extra_dev_deps = [
17
+ ['newgem', ">= #{::Newgem::VERSION}"]
18
+ ]
19
+
20
+ p.clean_globs |= %w[**/.DS_Store tmp *.log]
21
+ path = (p.rubyforge_name == p.name) ? p.rubyforge_name : "\#{p.rubyforge_name}/\#{p.name}"
22
+ p.remote_rdoc_dir = File.join(path.gsub(/^#{p.rubyforge_name}\/?/,''), 'rdoc')
23
+ p.rsync_args = '-av --delete --ignore-errors'
24
+ end
25
+
26
+ require 'newgem/tasks'
27
+ Dir['tasks/**/*.rake'].each { |t| load t }
28
+
29
+ task :default => [:spec]
data/growl/growlnotify ADDED
Binary file
data/img/error.png ADDED
Binary file
data/img/failed.png ADDED
Binary file
data/img/passed.png ADDED
Binary file
data/img/pending.png ADDED
Binary file
@@ -0,0 +1,126 @@
1
+ require 'rubygems'
2
+ require 'autotest'
3
+
4
+ $:.unshift(File.dirname(__FILE__)) unless
5
+ $:.include?(File.dirname(__FILE__)) ||
6
+ $:.include?(File.expand_path(File.dirname(__FILE__)))
7
+
8
+ ##
9
+ # Autotest::Growl
10
+ #
11
+ # == FEATUERS:
12
+ # * Display autotest results as local or remote Growl notifications.
13
+ # * Clean the terminal on every test cycle while maintaining scrollback.
14
+ #
15
+ # == SYNOPSIS:
16
+ # ~/.autotest
17
+ # require 'autotest/growl'
18
+ class Autotest
19
+ class Growl
20
+
21
+ VERSION = '0.1.2'
22
+ GEM_PATH = File.expand_path(File.join(File.dirname(__FILE__), '../..'))
23
+
24
+ @label = ''
25
+ @run_scenarios = false
26
+ @@remote_notification = false
27
+ @@hide_label = false
28
+ @@clear_term = true
29
+ @@wrap_lines = false
30
+ @@pretty_print = false
31
+
32
+ ##
33
+ # Whether to use remote or local notificaton (default).
34
+ def self.remote_notification=(boolean)
35
+ @@remote_notification = boolean
36
+ end
37
+
38
+ ##
39
+ # Whether to display the label (default) or not.
40
+ def self.hide_label=(boolean)
41
+ @@hide_label = boolean
42
+ end
43
+
44
+ ##
45
+ # Whether to clear the terminal before each run (default) or not.
46
+ def self.clear_before_run=(boolean)
47
+ @@clear_term = boolean
48
+ end
49
+
50
+ ##
51
+ # Whether to wrap the message at the commas or not (default).
52
+ def self.wrap_lines=(boolean)
53
+ @@wrap_lines = boolean
54
+ end
55
+
56
+ ##
57
+ # Whether to try and make a more readable format or not (default).
58
+ def self.pretty_print=(boolean)
59
+ @@pretty_print = boolean
60
+ end
61
+
62
+ def self.pretty_print(msg)
63
+ out = ''
64
+ msg.split(/,\s?/).each do |line|
65
+ matches = line.match(/(\d+)\s(\w+)/)
66
+ str = "#{matches[1].rjust(6)} #{matches[2]}\n"
67
+ out << str
68
+ end
69
+ out
70
+ end
71
+
72
+ ##
73
+ # Display a message through Growl.
74
+ def self.growl title, message, icon, priority=0, stick=""
75
+ growl = File.join(GEM_PATH, 'growl', 'growlnotify')
76
+ image = File.join(ENV['HOME'], '.autotest-growl', "#{icon}.png")
77
+ image = File.join(GEM_PATH, 'img', "#{icon}.png") unless File.exists?(image)
78
+ message = message.gsub(/,\s?/, "\n") if @@wrap_lines && !@@pretty_print
79
+ message = pretty_print(message) if @@pretty_print
80
+
81
+ if @@remote_notification
82
+ system "#{growl} -H localhost -n autotest --image '#{image}' -p #{priority} -m \"#{message}\" '#{title}' #{stick}"
83
+ else
84
+ system "#{growl} -n autotest --image '#{image}' -p #{priority} -m \"#{message}\" '#{title}' #{stick}"
85
+ end
86
+ end
87
+
88
+ ##
89
+ # Set the label and clear the terminal.
90
+ Autotest.add_hook :run_command do
91
+ @label = (@@hide_label) ? ('') : (File.basename(Dir.pwd).upcase + ': ')
92
+ @run_scenarios = false
93
+ print "\n"*2 + '-'*80 + "\n"*2
94
+ print "\e[2J\e[f" if @@clear_term # clear the terminal
95
+ false
96
+ end
97
+
98
+ ##
99
+ # Parse the test results and send them to Growl.
100
+ Autotest.add_hook :ran_command do |autotest|
101
+ gist = autotest.results.grep(/\d+\s+(example|test|scenario|step)s?/).map {|s|
102
+ s.gsub(/(\e.*?m|\n)/, '')
103
+ }.join(" / ")
104
+
105
+ if gist == ''
106
+ growl @label + 'Cannot run specs/tests/scenarios', '', 'error', 2
107
+ else
108
+ case gist
109
+ when /[1-9]\d*\s+(failure|error)/
110
+ growl @label + 'Tests failed', gist, 'failed', 2
111
+ when /pending/
112
+ growl @label + 'Tests pending', gist, 'pending', -1
113
+ when /failed/
114
+ growl @label + 'Scenarios failed', gist, 'failed', 2
115
+ when /undefined/
116
+ growl @label + 'Scenarios undefined', gist, 'pending', -1
117
+ when /scenario|step/
118
+ growl @label + 'Scenarios passed', gist, 'passed', -2
119
+ else
120
+ growl @label + 'Tests passed', gist, 'passed', -2
121
+ end
122
+ end
123
+ false
124
+ end
125
+ end
126
+ end
data/script/console ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+ # File: script/console
3
+ irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
4
+
5
+ libs = " -r irb/completion"
6
+ # Perhaps use a console_lib to store any extra methods I may want available in the cosole
7
+ # libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
8
+ libs << " -r #{File.dirname(__FILE__) + '/../lib/autotest-growl.rb'}"
9
+ puts "Loading autotest-growl gem"
10
+ exec "#{irb} #{libs} --simple-prompt"
data/script/destroy ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
+
4
+ begin
5
+ require 'rubigen'
6
+ rescue LoadError
7
+ require 'rubygems'
8
+ require 'rubigen'
9
+ end
10
+ require 'rubigen/scripts/destroy'
11
+
12
+ ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
+ RubiGen::Scripts::Destroy.new.run(ARGV)
data/script/generate ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
+
4
+ begin
5
+ require 'rubigen'
6
+ rescue LoadError
7
+ require 'rubygems'
8
+ require 'rubigen'
9
+ end
10
+ require 'rubigen/scripts/generate'
11
+
12
+ ARGV.shift if ['--help', '-h'].include?(ARGV[0])
13
+ RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
14
+ RubiGen::Scripts::Generate.new.run(ARGV)
@@ -0,0 +1,62 @@
1
+ require File.dirname(__FILE__) + '/spec_helper.rb'
2
+
3
+ describe "handling results" do
4
+ before do
5
+ @at = Autotest.new
6
+ @atg = Autotest::Growl
7
+ end
8
+
9
+ describe "for Rspec" do
10
+ it "should show a passing growl" do
11
+ Autotest::Growl.should_receive(:growl).and_return('passed')
12
+ @at.results = ["10 examples, 0 failures"]
13
+ @at.hook(:ran_command)
14
+ end
15
+
16
+ it "should show a failing growl" do
17
+ Autotest::Growl.should_receive(:growl).and_return('passed')
18
+ @at.results = ["10 examples, 1 failures"]
19
+ @at.hook(:ran_command)
20
+ end
21
+
22
+ it "should show a pending growl" do
23
+ Autotest::Growl.should_receive(:growl).and_return('passed')
24
+ @at.results = ["10 examples, 0 failures, 1 pending"]
25
+ @at.hook(:ran_command)
26
+ end
27
+ end
28
+
29
+ describe "for Cucumber" do
30
+ # not sure what cucumber output looks like
31
+ # it "should show a passing growl" do
32
+ # @at.results = ["10 examples, 0 failures"]
33
+ # @at.hook(:ran_command)
34
+ # end
35
+ #
36
+ # it "should show a failing growl" do
37
+ # @at.results = ["10 examples, 1 failures"]
38
+ # @at.hook(:ran_command)
39
+ # end
40
+ #
41
+ # it "should show a pending growl" do
42
+ # @at.results = ["10 examples, 0 failures, 1 pending"]
43
+ # @at.hook(:ran_command)
44
+ # end
45
+ end
46
+
47
+ describe "for Test::Unit" do
48
+ it "should show a passing growl" do
49
+ Autotest::Growl.should_receive(:growl).and_return('passed')
50
+ @at.results = ["1 tests, 1 assertions, 0 failures, 0 errors"]
51
+ @at.hook(:ran_command)
52
+ end
53
+
54
+ it "should show a failing growl" do
55
+ Autotest::Growl.should_receive(:growl).twice.and_return('passed')
56
+ @at.results = ["1 tests, 1 assertions, 1 failures, 0 errors"]
57
+ @at.hook(:ran_command)
58
+ @at.results = ["1 tests, 1 assertions, 0 failures, 1 errors"]
59
+ @at.hook(:ran_command)
60
+ end
61
+ end
62
+ end
data/spec/spec.opts ADDED
@@ -0,0 +1 @@
1
+ --colour
@@ -0,0 +1,19 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
5
+ gem 'rspec'
6
+ require 'spec'
7
+ end
8
+
9
+ $:.unshift(File.dirname(__FILE__) + '/../lib')
10
+
11
+ require 'autotest/growl'
12
+
13
+ class Autotest
14
+ class Growl
15
+ def self.growl(title, message, icon, priority=0, stick="")
16
+ icon
17
+ end
18
+ end
19
+ end
data/tasks/rspec.rake ADDED
@@ -0,0 +1,21 @@
1
+ begin
2
+ require 'spec'
3
+ rescue LoadError
4
+ require 'rubygems' unless ENV['NO_RUBYGEMS']
5
+ require 'spec'
6
+ end
7
+ begin
8
+ require 'spec/rake/spectask'
9
+ rescue LoadError
10
+ puts <<-EOS
11
+ To use rspec for testing you must install rspec gem:
12
+ gem install rspec
13
+ EOS
14
+ exit(0)
15
+ end
16
+
17
+ desc "Run the specs under spec/models"
18
+ Spec::Rake::SpecTask.new do |t|
19
+ t.spec_opts = ['--options', "spec/spec.opts"]
20
+ t.spec_files = FileList['spec/**/*_spec.rb']
21
+ end
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: UnderpantsGnome-autotest-growl
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - Sven Schwyn
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-06-02 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: ZenTest
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 4.0.0
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: newgem
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.3.0
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: hoe
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.8.0
44
+ version:
45
+ description: This gem aims to improve support for Growl notification by ZenTest's autotest. It comes with a nice colored Ruby icon set and - for now - supports Cucumber by means of a workaround.
46
+ email:
47
+ - ruby@bitcetera.com
48
+ executables: []
49
+
50
+ extensions: []
51
+
52
+ extra_rdoc_files:
53
+ - History.txt
54
+ - Manifest.txt
55
+ - PostInstall.txt
56
+ - README.rdoc
57
+ files:
58
+ - History.txt
59
+ - Manifest.txt
60
+ - PostInstall.txt
61
+ - README.rdoc
62
+ - Rakefile
63
+ - growl/growlnotify
64
+ - img/error.png
65
+ - img/failed.png
66
+ - img/passed.png
67
+ - img/pending.png
68
+ - lib/autotest/growl.rb
69
+ - script/console
70
+ - script/destroy
71
+ - script/generate
72
+ - spec/autotest-growl_spec.rb
73
+ - spec/spec.opts
74
+ - spec/spec_helper.rb
75
+ - tasks/rspec.rake
76
+ has_rdoc: true
77
+ homepage: http://www.bitcetera.com/products/autotest-growl
78
+ post_install_message: |+
79
+
80
+ +--------------------------------------------------------------------------+
81
+ | |
82
+ | In order to use autotest-growl, the following line has to be added |
83
+ | to the top of ~/.autotest file: |
84
+ | |
85
+ | require 'autotest/growl' |
86
+ | |
87
+ | IMPORTANT: If you use ZenTest-4.0.0, this won't work. See the README |
88
+ | for further instructions. |
89
+ | |
90
+ | Make sure Growl is installed on your computer. Download it from: |
91
+ | |
92
+ | http://growl.info |
93
+ | |
94
+ | If Growl notifications are not always displayed, take a look at the |
95
+ | README for help. |
96
+ | |
97
+ | For more information, feedback and bug submissions, please visit: |
98
+ | |
99
+ | See http://www.bitcetera.com/products/autotest-growl |
100
+ | |
101
+ +--------------------------------------------------------------------------+
102
+
103
+ rdoc_options:
104
+ - --main
105
+ - README.rdoc
106
+ require_paths:
107
+ - lib
108
+ required_ruby_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: "0"
113
+ version:
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: "0"
119
+ version:
120
+ requirements: []
121
+
122
+ rubyforge_project: autotest-growl
123
+ rubygems_version: 1.2.0
124
+ signing_key:
125
+ specification_version: 2
126
+ summary: Next generation Growl notification support for ZenTest's autotest.
127
+ test_files: []
128
+