test-harness 0.4.7 → 0.4.9

Sign up to get free protection for your applications and to get access to all the features.
data/.watchr ADDED
@@ -0,0 +1,94 @@
1
+ if __FILE__ == $0
2
+ puts "Run with: watchr #{__FILE__}. \n\nRequired gems: watchr rev"
3
+ exit 1
4
+ end
5
+
6
+ # --------------------------------------------------
7
+ # Convenience Methods
8
+ # --------------------------------------------------
9
+ def run(cmd)
10
+ sleep(2)
11
+ puts("%s %s [%s]" % ["|\n" * 5 , cmd , Time.now.to_s])
12
+ $last_test = cmd
13
+ system(cmd)
14
+ end
15
+
16
+ def run_all_specs
17
+ run "bundle exec rake -s spec SPEC_OPTS='--order rand'"
18
+ end
19
+
20
+ def run_last_test
21
+ run($last_test)
22
+ end
23
+
24
+ def run_single_spec *spec
25
+ spec = spec.join(' ')
26
+ run "bundle exec rspec #{spec} --order rand"
27
+ end
28
+
29
+ def run_specs_with_shared_examples(shared_example_filename, spec_path = 'spec')
30
+
31
+ # Returns the names of the shared examples in filename
32
+ def shared_examples(filename)
33
+ lines = File.readlines(filename)
34
+ lines.grep(/shared_examples_for[\s'"]+(.+)['"]\s*[do|\{]/) do |matching_line|
35
+ $1
36
+ end
37
+ end
38
+
39
+ # Returns array with filenames of the specs using shared_example
40
+ def specs_with_shared_example(shared_example, path)
41
+ command = "grep -lrE 'it_should_behave_like .(#{shared_example}).' #{path}"
42
+ `#{command}`.split
43
+ end
44
+
45
+ shared_examples(shared_example_filename).each do |shared_example|
46
+ specs_to_run = specs_with_shared_example(shared_example, spec_path)
47
+ run_single_spec(specs_to_run) unless specs_to_run.empty?
48
+ end
49
+
50
+ end
51
+
52
+ def run_cucumber_scenario scenario_path
53
+ if scenario_path !~ /.*\.feature$/
54
+ scenario_path = $last_scenario
55
+ end
56
+ $last_scenario = scenario_path
57
+ run "bundle exec cucumber #{scenario_path} --tags @dev"
58
+ end
59
+
60
+ # --------------------------------------------------
61
+ # Watchr Rules
62
+ # --------------------------------------------------
63
+ watch( '^spec/spec_helper\.rb' ) { run_all_specs }
64
+ watch( '^spec/shared_behaviors/.*\.rb' ) { |m| run_specs_with_shared_examples(m[0]) }
65
+ watch( '^spec/.*_spec\.rb' ) { |m| run_single_spec(m[0]) }
66
+ watch( '^app/lib/.*' ) { |m| run_last_test }
67
+ watch( '^spec/factories.*' ) { |m| run_last_test }
68
+ watch( '^test_harness/.*' ) { |m| run_last_test }
69
+ watch( '^app/(.*)\.rb' ) { |m| run_single_spec("spec/%s_spec.rb" % m[1]) }
70
+ watch( '^app/views/(.*)\.haml' ) { |m| run_single_spec("spec/views/%s.haml_spec.rb" % m[1]) }
71
+ watch( '^lib/(.*)\.rb' ) { |m| run_single_spec("spec/other/%s_spec.rb" % m[1] ) }
72
+ watch( '^features/*/.*' ) { |m| run_cucumber_scenario(m[0]) }
73
+ watch( '^test_harness/*/.*' ) { |m| run_cucumber_scenario(m[0]) }
74
+
75
+
76
+ # --------------------------------------------------
77
+ # Signal Handling
78
+ # --------------------------------------------------
79
+ # Ctrl-\
80
+ Signal.trap('QUIT') do
81
+ puts " --- Running all tests ---\n\n"
82
+ run_all_specs
83
+ end
84
+
85
+ # Ctrl-T
86
+ Signal.trap('TSTP') do
87
+ puts " --- Running last test --\n\n"
88
+ run_cucumber_scenario nil
89
+ end
90
+
91
+ # Ctrl-C
92
+ Signal.trap('INT') { abort("\n") }
93
+
94
+ puts "Watching.."
data/README.markdown CHANGED
@@ -13,7 +13,7 @@ Or add to your Gemfile:
13
13
  end
14
14
 
15
15
  ## Structure
16
- Rails.root/
16
+ /
17
17
  test_harness/
18
18
  /given
19
19
  /ui
@@ -157,13 +157,17 @@ In the **feature/support/setup_test_harness.rb**
157
157
  require 'test_harness'
158
158
  require 'spec/factories' # if you use factories
159
159
 
160
- ** autoload_path**: Allows you to set the path where test_harness files are found. Putting them in the
160
+ **autoload_path**: Allows you to set the path where test_harness files are found. Putting them in the
161
161
  Rails.root/app folder proves problematic as they get autoloaded in production. However, depending on how
162
- you setup you Gemfile, the test-harness gem might be excluded, and the server will fail to load.
162
+ you setup you Gemfile, the test-harness gem might be excluded, and the server will fail to load. Defaults to 'test_harness'.
163
+
164
+ **namespace**: Sets the class namespace for your test_harness files. Specify
165
+ this as a string, not a constant. Defaults to 'TestHarness'.
163
166
 
164
167
  TestHarness.configure do |c|
165
168
  c.browser = Capybara
166
169
  c.autoload_path = Rails.root.join('test_harness')
170
+ c.namespace = 'MyHarness'
167
171
  end
168
172
 
169
173
  World(TestHarness::TestHelper)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.7
1
+ 0.4.9
data/lib/configuration.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  class TestHarness
2
2
  class Configuration
3
- attr_accessor :browser, :server_host, :autoload_path
3
+ attr_accessor :browser, :server_host, :autoload_path, :namespace
4
4
 
5
5
  def setup_cucumber_hooks(scope)
6
- scope.Before do
7
- TestHarness.reset
8
- end
6
+ scope.Before do
7
+ TestHarness.reset
8
+ end
9
9
  end
10
10
  end
11
11
  end
data/lib/given.rb CHANGED
@@ -1,13 +1,20 @@
1
1
  require 'test_helper'
2
2
  class TestHarness
3
3
  class Given
4
- include TestHarness::TestHelper
4
+ def mm
5
+ TestHarness.mm
6
+ end
5
7
 
6
- Dir.glob(Rails.root.join(TestHarness.autoload_path, 'given/*.rb')).each do |file|
7
- component = File.basename(file, '.rb')
8
- require Rails.root.join(TestHarness.autoload_path, 'given', component)
9
- klass = ("TestHarness::Given::%s" % File.basename(file, '.rb').camelize).constantize
10
- include klass
8
+ def self.autoload
9
+ Dir.glob(File.join(TestHarness.autoload_path, 'given/*.rb')).each do |file|
10
+ component = File.basename(file, '.rb')
11
+ require File.join(TestHarness.autoload_path, 'given', component)
12
+ klass = TestHarness::Utilities.constantize("%s::Given::%s" % [
13
+ TestHarness.namespace,
14
+ TestHarness::Utilities.camelize(File.basename(file, '.rb'))
15
+ ])
16
+ include klass
17
+ end
11
18
  end
12
19
  end
13
20
  end
data/lib/mental_model.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'ostruct'
2
+
1
3
  class TestHarness
2
4
  class MentalModel < OpenStruct
3
5
 
data/lib/test_harness.rb CHANGED
@@ -1,9 +1,16 @@
1
1
  require 'configuration'
2
+ require 'utilities'
2
3
 
3
4
  class TestHarness
4
5
  class << self
5
6
  def configuration
6
- @configuation ||= Configuration.new
7
+ @configuration ||= Configuration.new
8
+ end
9
+
10
+ def autoload
11
+ TestHarness::Given.autoload
12
+ TestHarness::UIView.autoload
13
+ TestHarness::UIDriver.autoload
7
14
  end
8
15
 
9
16
  def configure(&block)
@@ -35,18 +42,19 @@ class TestHarness
35
42
  @path ||= configuration.autoload_path || 'test_harness'
36
43
  end
37
44
 
45
+ def namespace
46
+ @namespace ||= configuration.namespace || 'TestHarness'
47
+ end
48
+
38
49
  def registered_components
39
50
  @components ||= []
40
51
  end
41
52
 
42
- def register_instance_option(scope, option_name, default_value = nil)
43
- registered_components << default_value
44
- scope.send(:define_method, option_name) do |*args, &block|
45
- if !args[0].nil? || block
46
- instance_variable_set("@#{option_name}_registered", args[0].nil? ? block : args[0])
47
- else
48
- instance_variable_get("@#{option_name}_registered") || default_value || yield
49
- end
53
+ def register_instance_option(scope, option_name, instance)
54
+ return if registered_components.any? { |c| c.is_a? instance.class }
55
+ registered_components << instance
56
+ scope.send(:define_method, option_name) do
57
+ instance
50
58
  end
51
59
  end
52
60
  end
data/lib/test_helper.rb CHANGED
@@ -1,6 +1,12 @@
1
1
  class TestHarness
2
2
  module TestHelper
3
- delegate :configuration, :given, :uiv, :uid, :mm, :to => TestHarness
3
+ def method_missing(method, *args)
4
+ if [:configuration, :given, :uiv, :uid, :mm, :to].include?(method)
5
+ TestHarness.send(method)
6
+ else
7
+ super
8
+ end
9
+ end
4
10
 
5
11
  def browser
6
12
  configuration.browser
@@ -1,5 +1,11 @@
1
+ class MissingConfiguration < Exception; end
2
+
1
3
  class TestHarness
2
4
  module UIComponentHelper
5
+ def mm
6
+ TestHarness.mm
7
+ end
8
+
3
9
  def component
4
10
  self.class.parent.component
5
11
  end
@@ -8,6 +14,17 @@ class TestHarness
8
14
  @form = nil
9
15
  end
10
16
 
17
+ def configuration
18
+ TestHarness.configuration
19
+ end
20
+
21
+ def browser
22
+ @browser ||= begin
23
+ raise MissingConfiguration.new('TestHarness.browser must be defined') if configuration.browser.nil?
24
+ configuration.browser
25
+ end
26
+ end
27
+
11
28
  # If the UIComponent is sent a message it does not understand, it will
12
29
  # forward that message on to its {#browser} but wrap the call in a block
13
30
  # provided to the the browser's `#within` method. This provides convenient
data/lib/ui_driver.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  class TestHarness
2
2
  class UIDriver < TestHarness::UIHelper
3
- register_ui_components
4
3
  end
5
4
  end
6
5
 
data/lib/ui_helper.rb CHANGED
@@ -1,14 +1,17 @@
1
1
  class TestHarness
2
2
  class UIHelper
3
- def self.register_ui_components
4
- Dir.glob(Rails.root.join(TestHarness.autoload_path, 'ui/*.rb')).each do |file|
3
+ def self.autoload
4
+ Dir.glob(File.join(TestHarness.autoload_path, 'ui/*.rb')).each do |file|
5
5
  component = File.basename(file, '.rb')
6
- require Rails.root.join(TestHarness.autoload_path, 'ui', component)
7
- klass = ("TestHarness::%s::%s" % [component.camelize, self.name.split('::').last]).constantize
6
+ require File.join(TestHarness.autoload_path, 'ui', component)
7
+ klass = TestHarness::Utilities.constantize("%s::%s::%s" % [
8
+ TestHarness.namespace,
9
+ TestHarness::Utilities.camelize(component),
10
+ self.name.split('::').last
11
+ ])
8
12
  TestHarness.register_instance_option(self, component, klass.new)
9
13
  klass.send(:include, TestHarness::UIComponentHelper)
10
- klass.send(:include, TestHarness::TestHelper)
11
14
  end
12
15
  end
13
16
  end
14
- end
17
+ end
data/lib/ui_view.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  class TestHarness
2
2
  class UIView < TestHarness::UIHelper
3
- register_ui_components
4
3
  end
5
4
  end
6
5
 
data/lib/utilities.rb ADDED
@@ -0,0 +1,21 @@
1
+ class TestHarness
2
+ module Utilities
3
+ module_function
4
+
5
+ def camelize(string)
6
+ string = string.sub(/^[a-z\d]*/) { $&.capitalize }
7
+ string = string.gsub(/(?:_|(\/))([a-z\d]*)/) { "#{$1}#{$2.capitalize}" }.gsub('/', '::')
8
+ end
9
+
10
+ def constantize(camel_cased_word)
11
+ names = camel_cased_word.split('::')
12
+ names.shift if names.empty? || names.first.empty?
13
+
14
+ constant = Object
15
+ names.each do |name|
16
+ constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
17
+ end
18
+ constant
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,9 @@
1
+ class FakeHarness
2
+ class Given
3
+ module GivenTest
4
+ def a_boring_test
5
+ :a_fancy_and_inspiring_result
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ class FakeHarness
2
+ class UiTest < TestHarness::UIComponent
3
+ class UIView
4
+ def lookies
5
+ :lovely_landscapes
6
+ end
7
+ end
8
+
9
+ class UIDriver
10
+ def dainty_gloves
11
+ :handy_holders
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe TestHarness::Given do
4
+ describe "#mm" do
5
+ it "delegates to TestHarness" do
6
+ TestHarness.should_receive(:mm).and_return('no_rainforests_in_iowa')
7
+ TestHarness::Given.new.mm.should == 'no_rainforests_in_iowa'
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe TestHarness do
4
+ describe ".autoload" do
5
+ it "delegates autoload to all three concerns" do
6
+ TestHarness::UIView.should_receive(:autoload)
7
+ TestHarness::UIDriver.should_receive(:autoload)
8
+ TestHarness::Given.should_receive(:autoload)
9
+
10
+ TestHarness.autoload
11
+ end
12
+
13
+ it "actually loads all givens and registers all UI components" do
14
+ TestHarness.autoload
15
+
16
+ defined?(FakeHarness::Given::GivenTest).should be_true
17
+ [FakeHarness::UiTest::UIView, FakeHarness::UiTest::UIDriver].each do |kl|
18
+ TestHarness.registered_components.map(&:class).should include(kl)
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ class TestHelperWrapper
4
+ extend TestHarness::TestHelper
5
+ end
6
+
7
+ describe TestHarness::TestHelper do
8
+ [:configuration, :given, :uiv, :uid, :mm, :to].each do |method|
9
+ it "delegates #{method} to TestHarness" do
10
+ TestHarness.should_receive(method).and_return('sleepy_monkeys')
11
+ TestHelperWrapper.send(method).should == 'sleepy_monkeys'
12
+ end
13
+ end
14
+
15
+ it "adds methods to access given & ui components" do
16
+ TestHarness.autoload
17
+ TestHelperWrapper.given.a_boring_test.should ==
18
+ :a_fancy_and_inspiring_result
19
+ TestHelperWrapper.uiv.ui_test.lookies.should == :lovely_landscapes
20
+ TestHelperWrapper.uid.ui_test.dainty_gloves.should == :handy_holders
21
+ end
22
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe "UIComponentHelper" do
4
+ describe "#browser" do
5
+ it "raises error for missing browser" do
6
+ TestHarness.autoload
7
+ expect {FakeHarness::UiTest::UIView.new.browser}.to raise_error(MissingConfiguration, 'TestHarness.browser must be defined')
8
+ end
9
+
10
+ it 'returns browser defined in TestHarness.configuration' do
11
+ TestHarness.configuration.browser = :whatever
12
+ TestHarness.autoload
13
+ FakeHarness::UiTest::UIView.new.browser.should == :whatever
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+ require 'utilities'
3
+
4
+ describe TestHarness::Utilities do
5
+ describe ".camelize" do
6
+ it "camelizes underscored word" do
7
+ TestHarness::Utilities.camelize('furby_catchment_vice').should ==
8
+ 'FurbyCatchmentVice'
9
+ end
10
+ end
11
+
12
+ describe ".constantize" do
13
+ it "constantizes camel-cased word" do
14
+ TestHarness::Utilities.constantize('TestHarness::Utilities').should ==
15
+ TestHarness::Utilities
16
+ end
17
+ end
18
+ end
data/spec/spec_helper.rb CHANGED
@@ -7,6 +7,11 @@ require 'test_harness'
7
7
  # in ./support/ and its subdirectories.
8
8
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
9
 
10
+ TestHarness.configure do |c|
11
+ c.namespace = 'FakeHarness'
12
+ c.autoload_path = File.expand_path('../fake_harness', __FILE__)
13
+ end
14
+
10
15
  RSpec.configure do |config|
11
16
 
12
17
  end
data/test-harness.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "test-harness"
8
- s.version = "0.4.7"
8
+ s.version = "0.4.9"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Maher Hawash"]
12
- s.date = "2012-10-17"
12
+ s.date = "2013-01-19"
13
13
  s.description = "A test harness for rspec and cucumber which allows for separating responsibility between setting up the context and interacting with the browser, and cleaning up the step definition files."
14
14
  s.email = "gmhawash@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.files = [
20
20
  ".document",
21
21
  ".rspec",
22
+ ".watchr",
22
23
  "Gemfile",
23
24
  "Gemfile.lock",
24
25
  "LICENSE.txt",
@@ -35,8 +36,15 @@ Gem::Specification.new do |s|
35
36
  "lib/ui_driver.rb",
36
37
  "lib/ui_helper.rb",
37
38
  "lib/ui_view.rb",
39
+ "lib/utilities.rb",
40
+ "spec/fake_harness/given/given_test.rb",
41
+ "spec/fake_harness/ui/ui_test.rb",
42
+ "spec/lib/given_spec.rb",
43
+ "spec/lib/test_harness_spec.rb",
44
+ "spec/lib/test_helper_spec.rb",
45
+ "spec/lib/ui_component_helper_spec.rb",
46
+ "spec/lib/utilities_spec.rb",
38
47
  "spec/spec_helper.rb",
39
- "spec/test_harness_spec.rb",
40
48
  "test-harness.gemspec"
41
49
  ]
42
50
  s.homepage = "http://github.com/gmhawash/test_harness"
metadata CHANGED
@@ -1,104 +1,109 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: test-harness
3
- version: !ruby/object:Gem::Version
4
- hash: 1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.9
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 4
9
- - 7
10
- version: 0.4.7
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Maher Hawash
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-10-17 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
- none: false
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- hash: 3
27
- segments:
28
- - 0
29
- version: "0"
30
- prerelease: false
31
- type: :development
12
+ date: 2013-01-19 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
32
15
  name: rspec
33
- requirement: *id001
34
- - !ruby/object:Gem::Dependency
35
- version_requirements: &id002 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
36
17
  none: false
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- hash: 3
41
- segments:
42
- - 0
43
- version: "0"
44
- prerelease: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
45
22
  type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
46
31
  name: rdoc
47
- requirement: *id002
48
- - !ruby/object:Gem::Dependency
49
- version_requirements: &id003 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
50
33
  none: false
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- hash: 3
55
- segments:
56
- - 0
57
- version: "0"
58
- prerelease: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
59
38
  type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
60
47
  name: bundler
61
- requirement: *id003
62
- - !ruby/object:Gem::Dependency
63
- version_requirements: &id004 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
64
49
  none: false
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- hash: 3
69
- segments:
70
- - 0
71
- version: "0"
72
- prerelease: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
73
54
  type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
74
63
  name: jeweler
75
- requirement: *id004
76
- - !ruby/object:Gem::Dependency
77
- version_requirements: &id005 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
78
65
  none: false
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- hash: 3
83
- segments:
84
- - 0
85
- version: "0"
86
- prerelease: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
87
70
  type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
88
79
  name: gemcutter
89
- requirement: *id005
90
- description: A test harness for rspec and cucumber which allows for separating responsibility between setting up the context and interacting with the browser, and cleaning up the step definition files.
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: A test harness for rspec and cucumber which allows for separating responsibility
95
+ between setting up the context and interacting with the browser, and cleaning up
96
+ the step definition files.
91
97
  email: gmhawash@gmail.com
92
98
  executables: []
93
-
94
99
  extensions: []
95
-
96
- extra_rdoc_files:
100
+ extra_rdoc_files:
97
101
  - LICENSE.txt
98
102
  - README.markdown
99
- files:
103
+ files:
100
104
  - .document
101
105
  - .rspec
106
+ - .watchr
102
107
  - Gemfile
103
108
  - Gemfile.lock
104
109
  - LICENSE.txt
@@ -115,41 +120,42 @@ files:
115
120
  - lib/ui_driver.rb
116
121
  - lib/ui_helper.rb
117
122
  - lib/ui_view.rb
123
+ - lib/utilities.rb
124
+ - spec/fake_harness/given/given_test.rb
125
+ - spec/fake_harness/ui/ui_test.rb
126
+ - spec/lib/given_spec.rb
127
+ - spec/lib/test_harness_spec.rb
128
+ - spec/lib/test_helper_spec.rb
129
+ - spec/lib/ui_component_helper_spec.rb
130
+ - spec/lib/utilities_spec.rb
118
131
  - spec/spec_helper.rb
119
- - spec/test_harness_spec.rb
120
132
  - test-harness.gemspec
121
133
  homepage: http://github.com/gmhawash/test_harness
122
- licenses:
134
+ licenses:
123
135
  - MIT
124
136
  post_install_message:
125
137
  rdoc_options: []
126
-
127
- require_paths:
138
+ require_paths:
128
139
  - lib
129
- required_ruby_version: !ruby/object:Gem::Requirement
140
+ required_ruby_version: !ruby/object:Gem::Requirement
130
141
  none: false
131
- requirements:
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- hash: 3
135
- segments:
142
+ requirements:
143
+ - - ! '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ segments:
136
147
  - 0
137
- version: "0"
138
- required_rubygems_version: !ruby/object:Gem::Requirement
148
+ hash: -1093059498372964529
149
+ required_rubygems_version: !ruby/object:Gem::Requirement
139
150
  none: false
140
- requirements:
141
- - - ">="
142
- - !ruby/object:Gem::Version
143
- hash: 3
144
- segments:
145
- - 0
146
- version: "0"
151
+ requirements:
152
+ - - ! '>='
153
+ - !ruby/object:Gem::Version
154
+ version: '0'
147
155
  requirements: []
148
-
149
156
  rubyforge_project:
150
157
  rubygems_version: 1.8.24
151
158
  signing_key:
152
159
  specification_version: 3
153
160
  summary: Mini test harness for rspec and cucumber
154
161
  test_files: []
155
-
@@ -1,7 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe "TestHarness" do
4
- it "fails" do
5
- fail "hey buddy, you should probably rename this file and start specing for real"
6
- end
7
- end