busser 0.6.2 → 0.7.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4d045253e54d678f4f93e164d58da94b6c67d9fc
4
- data.tar.gz: 80164131f2d702ca8be26f23346a030c8eb29617
3
+ metadata.gz: 33a761472959045af71d47f2afe49b62340cc387
4
+ data.tar.gz: 493af07e1cc9799e76679273ec9fec9721b1a0b0
5
5
  SHA512:
6
- metadata.gz: e55ea6aba11d5800810e1edf771c9ae2d929616f7dda3155bc6ba92109efdbf4cb77b8d2fcf4a80fb7831aaf4f8d6845e180731b87c2afc9a39c60fa196dc201
7
- data.tar.gz: 1704d27a0812b2103e730300d82b09461d1a30fd136608bc604a28d2db1fe8ebce4b65117a273ba4e2eeb0996a4ba7860f7481fdff47e56ed0df0d2dd932f897
6
+ metadata.gz: e36c57606558acd0b442c23d8fe8fb93339d537df4d6025dcba9070228aee331ac2eede391ebc55d14fcd21f1ac4801b0378fa76c02e4dde9dc9f6e94ab5ae20
7
+ data.tar.gz: 81215af653fd82adde3b73c3ae0441d607a8cc5ba970d89ff2474b38a38b256a8941675548e39c11ba8bd54692cd1d2154f67505168805f09086b9d8b432de15
data/.simplecov CHANGED
@@ -1,4 +1,4 @@
1
- SimpleCov.adapters.define 'gem' do
1
+ SimpleCov.profiles.define 'gem' do
2
2
  command_name 'Specs'
3
3
 
4
4
  add_filter '.gem/'
@@ -1,29 +1,52 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - 2.1
5
- - 2.0.0
6
- - 1.9.3
7
- - 1.9.2
8
- - ruby-head
4
+ - 2.2
5
+ - 2.1
6
+ - 2.0.0
7
+ - 1.9.3
8
+ - ruby-head
9
9
 
10
10
  env:
11
+ - RUBYGEMS_VERSION=
12
+ - RUBYGEMS_VERSION=2.4.5
11
13
  - RUBYGEMS_VERSION=2.2.2
12
14
  - RUBYGEMS_VERSION=2.1.11
13
15
  - RUBYGEMS_VERSION=2.0.14
14
- - RUBYGEMS_VERSION=1.8.28
16
+ - RUBYGEMS_VERSION=1.8.29
15
17
 
16
18
  before_install:
17
- - gem update --system $RUBYGEMS_VERSION
19
+ - if [ -n "$RUBYGEMS_VERSION" ]; then gem update --system $RUBYGEMS_VERSION; fi
18
20
  - gem --version
19
21
 
20
22
  bundler_args: --without guard
21
23
 
24
+ sudo: false
25
+
22
26
  matrix:
23
- exclude:
24
- - rvm: 2.1
25
- env: RUBYGEMS_VERSION=1.8.28
26
- - rvm: 2.0.0
27
- env: RUBYGEMS_VERSION=1.8.28
28
27
  allow_failures:
29
- - rvm: ruby-head
28
+ - rvm: ruby-head
29
+ exclude:
30
+ - rvm: 2.2
31
+ env: RUBYGEMS_VERSION=2.2.2
32
+ - rvm: 2.2
33
+ env: RUBYGEMS_VERSION=2.1.11
34
+ - rvm: 2.2
35
+ env: RUBYGEMS_VERSION=2.0.14
36
+ - rvm: 2.2
37
+ env: RUBYGEMS_VERSION=1.8.29
38
+ - rvm: 2.1
39
+ env: RUBYGEMS_VERSION=1.8.29
40
+ - rvm: 2.0.0
41
+ env: RUBYGEMS_VERSION=1.8.29
42
+ - rvm: ruby-head
43
+ env: RUBYGEMS_VERSION=2.2.2
44
+ - rvm: ruby-head
45
+ env: RUBYGEMS_VERSION=2.1.11
46
+ - rvm: ruby-head
47
+ env: RUBYGEMS_VERSION=2.0.14
48
+ - rvm: ruby-head
49
+ env: RUBYGEMS_VERSION=1.8.29
50
+
51
+ notifications:
52
+ irc: "chat.freenode.net#kitchenci"
@@ -1,3 +1,19 @@
1
+ ## 0.7.0 / Unreleased
2
+
3
+ ### Bug fixes
4
+
5
+ * Pull request [#20][], issue [#17][]: Better detection of failed forked subprocess in `#run_ruby_script!` & `#run!`. ([@fnichol][], [@tyler-ball][], [@tknerr][])
6
+
7
+ ### New features
8
+
9
+ * Add optional `--type bat` flag to `busser setup` to support Windows platforms. ([@fnichol][])
10
+
11
+ ### Improvements
12
+
13
+ * Simplify busser binstub for more conservative bourne shell support. ([@fnichol][])
14
+ * Pull request [#15][]: Fix spelling in `busser test`. ([@obazoud][])
15
+
16
+
1
17
  ## 0.6.2 / 2014-03-23
2
18
 
3
19
  ### Bug fixes
@@ -107,7 +123,13 @@
107
123
  [#6]: https://github.com/test-kitchen/busser/issues/6
108
124
  [#7]: https://github.com/test-kitchen/busser/issues/7
109
125
  [#8]: https://github.com/test-kitchen/busser/issues/8
126
+ [#15]: https://github.com/test-kitchen/busser/issues/15
127
+ [#17]: https://github.com/test-kitchen/busser/issues/17
128
+ [#20]: https://github.com/test-kitchen/busser/issues/20
110
129
  [@fnichol]: https://github.com/fnichol
111
130
  [@jtimberman]: https://github.com/jtimberman
112
131
  [@neuhalje]: https://github.com/neuhalje
113
- [@sawanoboly]: https://github.com/sawanoboly
132
+ [@obazoud]: https://github.com/obazoud
133
+ [@sawanoboly]: https://github.com/sawanoboly
134
+ [@tknerr]: https://github.com/tknerr
135
+ [@tyler-ball]: https://github.com/tyler-ball
data/README.md CHANGED
@@ -1,7 +1,9 @@
1
1
  # Busser
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/busser.png)](http://badge.fury.io/rb/busser)
3
4
  [![Build Status](https://travis-ci.org/test-kitchen/busser.png?branch=master)](https://travis-ci.org/test-kitchen/busser)
4
5
  [![Code Climate](https://codeclimate.com/github/test-kitchen/busser.png)](https://codeclimate.com/github/test-kitchen/busser)
6
+ [![Dependency Status](https://gemnasium.com/test-kitchen/busser.svg)](https://gemnasium.com/test-kitchen/busser)
5
7
 
6
8
  Busser is a test setup and execution framework designed to
7
9
  work on remote nodes whose system dependencies cannot be relied upon, except
data/Rakefile CHANGED
@@ -2,7 +2,6 @@ require "bundler/gem_tasks"
2
2
  require 'rake/testtask'
3
3
  require 'cucumber/rake/task'
4
4
  require 'cane/rake_task'
5
- require 'tailor/rake_task'
6
5
 
7
6
  Rake::TestTask.new(:unit) do |t|
8
7
  t.libs.push "lib"
@@ -22,8 +21,6 @@ Cane::RakeTask.new do |cane|
22
21
  cane.canefile = './.cane'
23
22
  end
24
23
 
25
- Tailor::RakeTask.new
26
-
27
24
  desc "Display LOC stats"
28
25
  task :stats do
29
26
  puts "\n## Production Code Stats"
@@ -33,6 +30,6 @@ task :stats do
33
30
  end
34
31
 
35
32
  desc "Run all quality tasks"
36
- task :quality => [:cane, :tailor, :stats]
33
+ task :quality => [:cane, :stats]
37
34
 
38
35
  task :default => [:test, :quality]
@@ -22,15 +22,13 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_dependency 'thor', '<= 0.19.0'
24
24
 
25
+ spec.add_development_dependency 'aruba'
25
26
  spec.add_development_dependency "bundler", "~> 1.3"
26
- spec.add_development_dependency "rake"
27
+ spec.add_development_dependency 'cane'
28
+ spec.add_development_dependency 'countloc'
29
+ spec.add_development_dependency 'fakefs'
27
30
  spec.add_development_dependency 'minitest'
28
31
  spec.add_development_dependency 'mocha'
29
- spec.add_development_dependency 'fakefs'
30
- spec.add_development_dependency 'aruba'
31
-
32
- spec.add_development_dependency 'cane'
33
- spec.add_development_dependency 'tailor'
32
+ spec.add_development_dependency "rake"
34
33
  spec.add_development_dependency 'simplecov'
35
- spec.add_development_dependency 'countloc'
36
34
  end
@@ -7,11 +7,28 @@ Feature: Setup command
7
7
  Given a test BUSSER_ROOT directory named "busser-setup"
8
8
  And I delete the BUSSER_ROOT directory
9
9
 
10
- Scenario: Busser home is set up
11
- Given I run `busser setup`
10
+ Scenario: Busser home is set up with bourne binstub
11
+ Given I run `busser setup --type bourne`
12
12
  Then the BUSSER_ROOT directory should exist
13
13
  And a busser binstub file should contain:
14
14
  """
15
15
  This file was generated by Busser.
16
16
  """
17
+ And a busser binstub file should contain:
18
+ """
19
+ export BUSSER_ROOT
20
+ """
21
+ And the exit status should be 0
22
+
23
+ Scenario: Busser home is set up with bat binstub
24
+ Given I run `busser setup --type bat`
25
+ Then the BUSSER_ROOT directory should exist
26
+ And a bat busser binstub file should contain:
27
+ """
28
+ REM This file was generated by Busser.
29
+ """
30
+ And a bat busser binstub file should contain:
31
+ """
32
+ SET "BUSSER_EXIT_STATUS=%ERRORLEVEL%"
33
+ """
17
34
  And the exit status should be 0
@@ -1,9 +1,10 @@
1
- require 'simplecov'
2
1
  require 'aruba/cucumber'
3
-
4
2
  require 'busser/cucumber'
5
3
 
6
- SimpleCov.command_name "features"
4
+ if ENV["COVERAGE"]
5
+ require 'simplecov'
6
+ SimpleCov.command_name "features"
7
+ end
7
8
 
8
9
  Before do
9
10
  @aruba_timeout_seconds = 20
@@ -37,6 +37,7 @@ module Busser
37
37
 
38
38
  register Busser::Command::Setup, "setup",
39
39
  "setup", "Creates a Busser home"
40
+ tasks["setup"].options = Busser::Command::Setup.class_options
40
41
 
41
42
  register Busser::Command::Plugin, "plugin",
42
43
  "plugin SUBCOMMAND", "Plugin subcommands"
@@ -29,6 +29,10 @@ module Busser
29
29
  #
30
30
  class Setup < Busser::Thor::BaseGroup
31
31
 
32
+ class_option :type,
33
+ :desc => "Type of binstub file to create (bourne or bat)",
34
+ :default => "bourne"
35
+
32
36
  def perform
33
37
  banner "Setting up Busser"
34
38
  create_busser_root
@@ -43,9 +47,58 @@ module Busser
43
47
  end
44
48
 
45
49
  def generate_busser_binstub
50
+ info "Creating busser binstub"
51
+
52
+ if options[:type] == "bat"
53
+ generate_busser_binstub_for_bat
54
+ else
55
+ generate_busser_binstub_for_bourne
56
+ end
57
+ end
58
+
59
+ def generate_busser_binstub_for_bat
60
+ binstub = root_path + "bin/busser.bat"
61
+ busser_root = root_path.to_s.gsub("/", "\\")
62
+
63
+ File.unlink(binstub) if File.exists?(binstub)
64
+ create_file(binstub, :verbose => false) do
65
+ <<-BUSSER_BINSTUB.gsub(/^ {12}/, '')
66
+ @ECHO OFF
67
+ REM This file was generated by Busser.
68
+ REM
69
+ REM The application 'busser' is installed as part of a gem, and
70
+ REM this file is here to facilitate running it.
71
+
72
+ REM Make sure any variables we set exist only for this batch file
73
+ SETLOCAL
74
+
75
+ REM Set Busser Root Path
76
+ SET "BUSSER_ROOT=#{busser_root}"
77
+
78
+ REM Export gem paths so that we use the isolated gems.
79
+ SET "GEM_HOME=#{gem_home}"
80
+ SET "GEM_PATH=#{gem_path}"
81
+ SET "GEM_CACHE=#{gem_home}\\cache"
82
+
83
+ REM Unset RUBYOPT, we don't want this bleeding into our runtime.
84
+ SET RUBYOPT=
85
+ SET GEMRC=
86
+
87
+ REM Call the actual Busser bin with our arguments
88
+ "#{ruby_bin}" "#{gem_bindir}\\busser" %*
89
+
90
+ REM Store the exit status so we can re-use it later
91
+ SET "BUSSER_EXIT_STATUS=%ERRORLEVEL%"
92
+
93
+ REM Exit with the proper exit status from Busser
94
+ exit /b %BUSSER_EXIT_STATUS%
95
+ BUSSER_BINSTUB
96
+ end
97
+ end
98
+
99
+ def generate_busser_binstub_for_bourne
46
100
  binstub = root_path + "bin/busser"
47
101
 
48
- info "Creating busser binstub"
49
102
  File.unlink(binstub) if File.exists?(binstub)
50
103
  create_file(binstub, :verbose => false) do
51
104
  <<-BUSSER_BINSTUB.gsub(/^ {12}/, '')
@@ -56,14 +109,7 @@ module Busser
56
109
  # The application 'busser' is installed as part of a gem, and
57
110
  # this file is here to facilitate running it.
58
111
  #
59
- if [ -n "$DEBUG" ] ; then set -x ; fi
60
-
61
- # Get the directory where this ruby is. This will also resolve
62
- # any symlinks in the directory/script, so it will be the fully
63
- # resolved path.
64
- SOURCE="#{ruby_bin}"
65
- while [ -h "$SOURCE" ] ; do SOURCE="`readlink "$SOURCE"`"; done
66
- DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)"
112
+ if test -n "$DEBUG"; then set -x; fi
67
113
 
68
114
  # Set Busser Root path
69
115
  BUSSER_ROOT="#{root_path}"
@@ -71,40 +117,44 @@ module Busser
71
117
  export BUSSER_ROOT
72
118
 
73
119
  # Export gem paths so that we use the isolated gems.
74
- GEM_HOME="#{gem_home}"
75
- GEM_PATH="#{gem_path}"
76
- GEM_CACHE="#{gem_home}/cache"
77
-
78
- export GEM_HOME GEM_PATH GEM_CACHE
120
+ GEM_HOME="#{gem_home}"; export GEM_HOME
121
+ GEM_PATH="#{gem_path}"; export GEM_PATH
122
+ GEM_CACHE="#{gem_home}/cache"; export GEM_CACHE
79
123
 
80
124
  # Unset RUBYOPT, we don't want this bleeding into our runtime.
81
125
  unset RUBYOPT GEMRC
82
126
 
83
127
  # Call the actual Busser bin with our arguments
84
- exec "${DIR}/ruby" "#{gem_bindir}/busser" "$@"
128
+ exec "#{ruby_bin}" "#{gem_bindir}/busser" "$@"
85
129
  BUSSER_BINSTUB
86
130
  end
87
131
  chmod(binstub, 0755, :verbose => false)
88
132
  end
89
133
 
90
134
  def ruby_bin
91
- if bindir = RbConfig::CONFIG["bindir"]
135
+ result = if bindir = RbConfig::CONFIG["bindir"]
92
136
  File.join(bindir, "ruby")
93
137
  else
94
138
  "ruby"
95
139
  end
140
+ result = result.gsub("/", "\\").concat(".exe") if bat?
141
+ result
96
142
  end
97
143
 
98
144
  def gem_home
99
- Gem.paths.home
145
+ Gem.paths.home.dup.tap { |p| p.gsub!("/", "\\") if bat? }
100
146
  end
101
147
 
102
148
  def gem_path
103
- Gem.paths.path.join(":")
149
+ Gem.paths.path.join(":").dup.tap { |p| p.gsub!("/", "\\") if bat? }
104
150
  end
105
151
 
106
152
  def gem_bindir
107
- Gem.bindir
153
+ Gem.bindir.dup.tap { |p| p.gsub!("/", "\\") if bat? }
154
+ end
155
+
156
+ def bat?
157
+ options[:type] == "bat"
108
158
  end
109
159
  end
110
160
  end
@@ -70,7 +70,7 @@ module Busser
70
70
  if prepare_recipe.exist?
71
71
  warn "Apologies, but Busser no longer supports the" +
72
72
  " prepare_recipe.rb file. Please use prepare.sh and optionally" +
73
- " shell out to chef-apply in an Omnibus installtion."
73
+ " shell out to chef-apply in an Omnibus installation."
74
74
  end
75
75
  end
76
76
  end
@@ -66,7 +66,7 @@ end
66
66
 
67
67
  Then(/^the suite file "(.*?)" should contain exactly:$/) do |file, content|
68
68
  file_name = File.join(ENV['BUSSER_ROOT'], "suites", file)
69
- check_exact_file_content(file_name, content)
69
+ check_file_content(file_name, content)
70
70
  end
71
71
 
72
72
  Then(/^the vendor directory named "(.*?)" should exist$/) do |name|
@@ -102,14 +102,19 @@ end
102
102
 
103
103
  Then(/^a busser binstub file should contain:$/) do |partial_content|
104
104
  file = File.join(ENV['BUSSER_ROOT'], %w{bin busser})
105
- check_file_content(file, partial_content, true)
105
+ check_file_content(file, Regexp.new(Regexp.escape(partial_content)), true)
106
+ end
107
+
108
+ Then(/^a bat busser binstub file should contain:$/) do |partial_content|
109
+ file = File.join(ENV['BUSSER_ROOT'], %w{bin busser.bat})
110
+ check_file_content(file, Regexp.new(Regexp.escape(partial_content)), true)
106
111
  end
107
112
 
108
113
  Then(/^the file "(.*?)" should have permissions "(.*?)"$/) do |file, perms|
109
114
  in_current_dir do
110
115
  file_perms = sprintf("%o", File.stat(file).mode)
111
116
  file_perms = file_perms[2, 4]
112
- file_perms.should eq(perms)
117
+ expect(file_perms).to eq(perms)
113
118
  end
114
119
  end
115
120
 
@@ -40,36 +40,56 @@ module Busser
40
40
  say(">>>>>> #{msg}")
41
41
  end
42
42
 
43
- def run!(cmd)
44
- run(cmd, :capture => false, :verbose => false)
43
+ def fatal(msg)
44
+ error("!!!!!! #{msg}")
45
+ end
45
46
 
46
- if status.success?
47
- true
48
- else
49
- code = status.exitstatus
50
- die "Command [#{cmd}] exit code was #{code}", code
47
+ def run!(cmd, config = {})
48
+ config = { :capture => false, :verbose => false }.merge(config)
49
+
50
+ handle_command("Command", cmd) do
51
+ run(cmd, config)
51
52
  end
52
53
  end
53
54
 
54
55
  def run_ruby_script!(cmd, config = {})
55
56
  config = { :capture => false, :verbose => false }.merge(config)
56
- run_ruby_script(cmd, config)
57
57
 
58
- if status.success?
59
- true
60
- else
61
- code = status.exitstatus
62
- die "Ruby Script [#{cmd}] exit code was #{code}", code
58
+ handle_command("Ruby Script", cmd) do
59
+ run_ruby_script(cmd, config)
63
60
  end
64
61
  end
65
62
 
66
63
  def die(msg, exitstatus = 1)
67
- $stderr.puts(msg)
64
+ fatal(msg)
68
65
  exit(exitstatus)
69
66
  end
70
67
 
71
68
  def status
72
69
  $?
73
70
  end
71
+
72
+ def handle_command(type, cmd)
73
+ begin
74
+ yield
75
+ rescue => e
76
+ fatal(
77
+ "#{type} [#{cmd}] raised an exception: #{e.message}\n" +
78
+ e.backtrace.join("\n"))
79
+ raise
80
+ end
81
+
82
+ if status.nil?
83
+ die(
84
+ "#{type} [#{cmd}] did not return a valid status. " \
85
+ "This instance could be starved for RAM or may have swap disabled."
86
+ )
87
+ elsif status.success?
88
+ true
89
+ else
90
+ code = status.exitstatus
91
+ die("#{type} [#{cmd}] exit code was #{code}", code)
92
+ end
93
+ end
74
94
  end
75
95
  end
@@ -17,5 +17,5 @@
17
17
  # limitations under the License.
18
18
 
19
19
  module Busser
20
- VERSION = "0.6.2"
20
+ VERSION = "0.7.0.rc.1"
21
21
  end
@@ -14,6 +14,10 @@ class SneakyUI
14
14
  msg
15
15
  end
16
16
 
17
+ def error(msg)
18
+ $stderr.puts msg
19
+ end
20
+
17
21
  def run(cmd, opts)
18
22
  @run_args = [cmd, opts]
19
23
  end
@@ -33,7 +37,7 @@ class SneakyUI
33
37
 
34
38
  # these methods are technically private, so we'll avoid straight send
35
39
  # calls in the specs
36
- %w{banner info warn die run! run_ruby_script!}.each do |meth|
40
+ %w{banner info warn fatal die run! run_ruby_script!}.each do |meth|
37
41
  define_method("invoke_#{meth}") { |*args| send(meth, *args) }
38
42
  end
39
43
  end
@@ -72,9 +76,13 @@ describe Busser::UI do
72
76
  ui.invoke_warn("grinder").must_equal ">>>>>> grinder"
73
77
  end
74
78
 
79
+ it "#fatal should display a formatted message on stderr" do
80
+ capture_stderr { ui.invoke_fatal("grinder") }.must_equal "!!!!!! grinder\n"
81
+ end
82
+
75
83
  describe "#die" do
76
84
  it "prints a message to stderr" do
77
- capture_stderr { ui.invoke_die("noes") }.must_equal "noes\n"
85
+ capture_stderr { ui.invoke_die("noes") }.must_equal "!!!!!! noes\n"
78
86
  end
79
87
 
80
88
  it "calls exit with 1 by default" do
@@ -105,6 +113,14 @@ describe Busser::UI do
105
113
  ui.invoke_run!("great-stuff").must_equal true
106
114
  end
107
115
 
116
+ it "re-raises any exceptions from the underlying fork/exec" do
117
+ ui.stubs(:run).raises(Errno::ENOMEM)
118
+
119
+ capture_stderr {
120
+ proc { ui.invoke_run!("failwhale") }.must_raise Errno::ENOMEM
121
+ }.must_match /raised an exception/
122
+ end
123
+
108
124
  it "terminates the program if the command failed" do
109
125
  ui.status = FakeStatus.new(false)
110
126
  capture_stderr { ui.invoke_run!("failwhale") }
@@ -119,6 +135,14 @@ describe Busser::UI do
119
135
  ui.invoke_run!("failwhale").must_equal 24
120
136
  end
121
137
  end
138
+
139
+ it "terminates the program if status is nil" do
140
+ ui.status = nil
141
+ capture_stderr { ui.invoke_run!("failwhale") }.
142
+ must_match /did not return a valid status/
143
+
144
+ ui.died?.must_equal true
145
+ end
122
146
  end
123
147
 
124
148
  describe "#run_ruby_script!" do
@@ -145,6 +169,14 @@ describe Busser::UI do
145
169
  ui.invoke_run_ruby_script!("thewin.rb").must_equal true
146
170
  end
147
171
 
172
+ it "re-raises any exceptions from the underlying fork/exec" do
173
+ ui.stubs(:run_ruby_script).raises(Errno::ENOMEM)
174
+
175
+ capture_stderr {
176
+ proc { ui.invoke_run_ruby_script!("nope.rb") }.must_raise Errno::ENOMEM
177
+ }.must_match /raised an exception/
178
+ end
179
+
148
180
  it "terminates the program if the script failed" do
149
181
  ui.status = FakeStatus.new(false)
150
182
  capture_stderr { ui.invoke_run_ruby_script!("nope.rb") }
@@ -159,6 +191,14 @@ describe Busser::UI do
159
191
  ui.invoke_run_ruby_script!("nadda.rb").must_equal 97
160
192
  end
161
193
  end
194
+
195
+ it "terminates the program if status is nil" do
196
+ ui.status = nil
197
+ capture_stderr { ui.invoke_run_ruby_script!("nope.rb") }.
198
+ must_match /did not return a valid status/
199
+
200
+ ui.died?.must_equal true
201
+ end
162
202
  end
163
203
 
164
204
  def capture_stderr
@@ -16,9 +16,11 @@
16
16
  # See the License for the specific language governing permissions and
17
17
  # limitations under the License.
18
18
 
19
- require 'simplecov'
20
19
  require 'fakefs/safe'
21
20
  require 'minitest/autorun'
22
21
  require 'mocha/setup'
23
22
 
24
- SimpleCov.command_name "unit"
23
+ if ENV["COVERAGE"]
24
+ require 'simplecov'
25
+ SimpleCov.command_name "unit"
26
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: busser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0.rc.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fletcher Nichol
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-23 00:00:00.000000000 Z
11
+ date: 2015-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -25,21 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.19.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '1.3'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '1.3'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
28
+ name: aruba
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - ">="
@@ -53,21 +39,21 @@ dependencies:
53
39
  - !ruby/object:Gem::Version
54
40
  version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
- name: minitest
42
+ name: bundler
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
- - - ">="
45
+ - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '0'
47
+ version: '1.3'
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
- - - ">="
52
+ - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: '0'
54
+ version: '1.3'
69
55
  - !ruby/object:Gem::Dependency
70
- name: mocha
56
+ name: cane
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - ">="
@@ -81,7 +67,7 @@ dependencies:
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
- name: fakefs
70
+ name: countloc
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - ">="
@@ -95,7 +81,7 @@ dependencies:
95
81
  - !ruby/object:Gem::Version
96
82
  version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
- name: aruba
84
+ name: fakefs
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - ">="
@@ -109,7 +95,7 @@ dependencies:
109
95
  - !ruby/object:Gem::Version
110
96
  version: '0'
111
97
  - !ruby/object:Gem::Dependency
112
- name: cane
98
+ name: minitest
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
101
  - - ">="
@@ -123,7 +109,7 @@ dependencies:
123
109
  - !ruby/object:Gem::Version
124
110
  version: '0'
125
111
  - !ruby/object:Gem::Dependency
126
- name: tailor
112
+ name: mocha
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
115
  - - ">="
@@ -137,7 +123,7 @@ dependencies:
137
123
  - !ruby/object:Gem::Version
138
124
  version: '0'
139
125
  - !ruby/object:Gem::Dependency
140
- name: simplecov
126
+ name: rake
141
127
  requirement: !ruby/object:Gem::Requirement
142
128
  requirements:
143
129
  - - ">="
@@ -151,7 +137,7 @@ dependencies:
151
137
  - !ruby/object:Gem::Version
152
138
  version: '0'
153
139
  - !ruby/object:Gem::Dependency
154
- name: countloc
140
+ name: simplecov
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
143
  - - ">="
@@ -175,7 +161,6 @@ files:
175
161
  - ".cane"
176
162
  - ".gitignore"
177
163
  - ".simplecov"
178
- - ".tailor"
179
164
  - ".travis.yml"
180
165
  - CHANGELOG.md
181
166
  - Gemfile
@@ -251,12 +236,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
251
236
  version: 1.9.1
252
237
  required_rubygems_version: !ruby/object:Gem::Requirement
253
238
  requirements:
254
- - - ">="
239
+ - - ">"
255
240
  - !ruby/object:Gem::Version
256
- version: '0'
241
+ version: 1.3.1
257
242
  requirements: []
258
243
  rubyforge_project:
259
- rubygems_version: 2.2.2
244
+ rubygems_version: 2.4.5
260
245
  signing_key:
261
246
  specification_version: 4
262
247
  summary: Busser - Runs tests for projects in Test Kitchen
data/.tailor DELETED
@@ -1,4 +0,0 @@
1
- Tailor.config do |config|
2
- config.formatters "text"
3
- config.file_set 'lib/**/*.rb'
4
- end