stendhal 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
4
+ coverage
5
+ tmp/*
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --colour
2
+ --format documentation
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm --create use ruby-1.9.2@stendhal > /dev/null
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in stendhal.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,45 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ stendhal (0.0.1)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ aruba (0.2.2)
10
+ builder (2.1.2)
11
+ cucumber (0.8.5)
12
+ builder (~> 2.1.2)
13
+ diff-lcs (~> 1.1.2)
14
+ gherkin (~> 2.1.4)
15
+ json_pure (~> 1.4.3)
16
+ term-ansicolor (~> 1.0.4)
17
+ diff-lcs (1.1.2)
18
+ gherkin (2.1.5)
19
+ trollop (~> 1.16.2)
20
+ json_pure (1.4.6)
21
+ rspec (2.0.1)
22
+ rspec-core (~> 2.0.1)
23
+ rspec-expectations (~> 2.0.1)
24
+ rspec-mocks (~> 2.0.1)
25
+ rspec-core (2.0.1)
26
+ rspec-expectations (2.0.1)
27
+ diff-lcs (>= 1.1.2)
28
+ rspec-mocks (2.0.1)
29
+ rspec-core (~> 2.0.1)
30
+ rspec-expectations (~> 2.0.1)
31
+ simplecov (0.3.6)
32
+ simplecov-html (>= 0.3.7)
33
+ simplecov-html (0.3.8)
34
+ term-ansicolor (1.0.5)
35
+ trollop (1.16.2)
36
+
37
+ PLATFORMS
38
+ ruby
39
+
40
+ DEPENDENCIES
41
+ aruba
42
+ cucumber (= 0.8.5)
43
+ rspec
44
+ simplecov
45
+ stendhal!
data/Rakefile ADDED
@@ -0,0 +1,13 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+ require 'cucumber/rake/task'
6
+
7
+ desc "Run the specs under spec"
8
+ RSpec::Core::RakeTask.new do |t|
9
+ end
10
+
11
+ Cucumber::Rake::Task.new(:cucumber)
12
+
13
+ task :default => :spec
data/Readme.md ADDED
@@ -0,0 +1,51 @@
1
+ #stendhal
2
+
3
+ A small test framework developed as a personal kata to improve my ruby.
4
+
5
+ Currently under development, not functional at all. Below I will be posting
6
+ whatever features are available throughout the development.
7
+
8
+ ##Usage
9
+
10
+ # your spec file for some class - my_class_spec.rb
11
+
12
+ it "does something" do
13
+ my_object = MyClass.new
14
+ my_object.fancy = true
15
+
16
+ assert my_object.fancy
17
+ end
18
+
19
+ it "should do something but I don't know what yet"
20
+
21
+ pending "will do something else" do
22
+ my_object = MyClass.new
23
+ my_object.future_method
24
+ end
25
+
26
+ ###Running the specs!
27
+
28
+ stendhal my_class_spec.rb
29
+
30
+ ###And the output...
31
+
32
+ * does something
33
+ * should do something but I don't know what yet
34
+ * will do something else
35
+
36
+ 3 examples, 0 failures, 2 pending
37
+
38
+ ##Note on Patches/Pull Requests
39
+
40
+ * Fork the project.
41
+ * Make your feature addition or bug fix.
42
+ * Add specs for it. This is important so I don't break it in a
43
+ future version unintentionally.
44
+ * Commit, do not mess with rakefile, version, or history.
45
+ If you want to have your own version, that is fine but bump version
46
+ in a commit by itself I can ignore when I pull.
47
+ * Send me a pull request. Bonus points for topic branches.
48
+
49
+ ## Copyright
50
+
51
+ Copyright (c) 2010 Josep M. Bach. See LICENSE for details.
data/bin/stendhal ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require 'stendhal'
3
+ require 'stendhal/autorun'
@@ -0,0 +1,101 @@
1
+ Feature: Examples and example groups
2
+
3
+ Spec-ish Domain Specific Language
4
+
5
+ Scenario: declare an example
6
+ Given a directory named "rspec_project"
7
+ When I cd to "rspec_project"
8
+ Given a file named "sample_spec.rb" with:
9
+ """
10
+ describe "something" do
11
+ it "does something" do
12
+ assert true
13
+ end
14
+ end
15
+ """
16
+ When I run "stendhal sample_spec.rb"
17
+ Then the exit status should be 0
18
+ And the output should contain "1 example, 0 failures"
19
+
20
+ Scenario: declare a failing example
21
+ Given a directory named "rspec_project"
22
+ When I cd to "rspec_project"
23
+ Given a file named "sample_spec.rb" with:
24
+ """
25
+ describe "something" do
26
+ it "does something" do
27
+ assert false
28
+ end
29
+ end
30
+ """
31
+ When I run "stendhal sample_spec.rb"
32
+ Then the exit status should be 0
33
+ And the output should contain "* does something"
34
+ And the output should contain "1 example, 1 failure"
35
+
36
+ Scenario: declare a pending example
37
+ Given a directory named "rspec_project"
38
+ When I cd to "rspec_project"
39
+ Given a file named "sample_spec.rb" with:
40
+ """
41
+ describe "something" do
42
+ pending "does something" do
43
+ assert false
44
+ end
45
+ end
46
+ """
47
+ When I run "stendhal sample_spec.rb"
48
+ Then the exit status should be 0
49
+ And the output should contain "* does something"
50
+ And the output should contain "1 example, 0 failures, 1 pending"
51
+
52
+ Scenario: declare an example in nested groups
53
+ Given a directory named "rspec_project"
54
+ When I cd to "rspec_project"
55
+ Given a file named "sample_spec.rb" with:
56
+ """
57
+ describe "something" do
58
+ describe "inside another thing" do
59
+ it "does this" do
60
+ assert true
61
+ end
62
+ end
63
+ end
64
+ """
65
+ When I run "stendhal sample_spec.rb"
66
+ Then the exit status should be 0
67
+ And the output should contain "something"
68
+ And the output should contain "inside another thing"
69
+ And the output should contain "* does this"
70
+ And the output should contain "1 example, 0 failures"
71
+
72
+ Scenario: many examples in different example groups
73
+ Given a directory named "rspec_project"
74
+ When I cd to "rspec_project"
75
+ Given a file named "sample_spec.rb" with:
76
+ """
77
+ describe "something" do
78
+ describe "inside another thing" do
79
+ it "does this" do
80
+ assert true
81
+ end
82
+ end
83
+ describe "pending" do
84
+ pending "todo" do
85
+ assert false
86
+ end
87
+ it "fails" do
88
+ assert false
89
+ end
90
+ end
91
+ end
92
+ """
93
+ When I run "stendhal sample_spec.rb"
94
+ Then the exit status should be 0
95
+ And the output should contain "something"
96
+ And the output should contain "inside another thing"
97
+ And the output should contain "* does this"
98
+ And the output should contain "pending"
99
+ And the output should contain "* todo"
100
+ And the output should contain "* fails"
101
+ And the output should contain "3 examples, 1 failure, 1 pending"
@@ -0,0 +1 @@
1
+ require 'aruba'
@@ -0,0 +1,12 @@
1
+ module Stendhal
2
+ module Assertions
3
+ def assert test, msg = nil
4
+ msg ||= "Failed assertion, no message given."
5
+ unless test then
6
+ raise AssertionFailed, msg
7
+ end
8
+ true
9
+ end
10
+ end
11
+ class AssertionFailed < Exception; end
12
+ end
@@ -0,0 +1,11 @@
1
+
2
+
3
+ ARGV.each do |file|
4
+ require File.join('.',file)
5
+ end
6
+
7
+ examples, failures, pending = Stendhal::ExampleGroup.run_all
8
+ report = "\n#{examples} #{examples != 1 ? 'examples' : 'example'}, #{failures} #{failures != 1 ? 'failures' : 'failure'}"
9
+ report += ", #{pending} pending" if pending > 0
10
+ puts report
11
+
@@ -0,0 +1,5 @@
1
+ module Kernel
2
+ def describe(*args,&blk)
3
+ Stendhal::ExampleGroup.new(*args,&blk)
4
+ end
5
+ end
@@ -0,0 +1,20 @@
1
+ module Stendhal
2
+ module DSL
3
+ module Example
4
+ def it(*args,&blk)
5
+ self.add_example Stendhal::Example.new(*args,&blk)
6
+ end
7
+ def pending(*args,&blk)
8
+ if args.last.is_a? Hash
9
+ options = args.pop
10
+ options.update(:pending => true)
11
+ else
12
+ options = {:pending => true}
13
+ end
14
+ self.add_example Stendhal::Example.new(*args,options,&blk)
15
+ end
16
+ end
17
+ end
18
+ end
19
+
20
+ Stendhal::ExampleGroup.send(:include, Stendhal::DSL::Example)
@@ -0,0 +1,59 @@
1
+ module Stendhal
2
+ class Example
3
+ include Assertions
4
+
5
+ @@examples = []
6
+
7
+ attr_reader :description
8
+ attr_reader :block
9
+
10
+ def initialize(docstring, options = {}, &block)
11
+ @description = docstring
12
+ @block = block
13
+ @pending = true if options[:pending] || !block_given?
14
+ @@examples << self
15
+ end
16
+
17
+ def run
18
+ begin
19
+ self.instance_eval(&@block)
20
+ return 0
21
+ rescue AssertionFailed=>e
22
+ @failed = true
23
+ return 1
24
+ rescue StandardError=>e
25
+ @aborted = true
26
+ return 1
27
+ end
28
+ end
29
+
30
+ def pending?
31
+ @pending
32
+ end
33
+
34
+ def failed?
35
+ @failed
36
+ end
37
+
38
+ def aborted?
39
+ @aborted
40
+ end
41
+
42
+ def destroy
43
+ @@examples.delete self
44
+ end
45
+
46
+ class << self
47
+
48
+ def destroy_all
49
+ @@examples = []
50
+ end
51
+
52
+ def count
53
+ @@examples.count
54
+ end
55
+
56
+ end
57
+
58
+ end
59
+ end
@@ -0,0 +1,61 @@
1
+ module Stendhal
2
+ class ExampleGroup
3
+ @@example_groups = []
4
+
5
+ attr_reader :description
6
+ attr_reader :block
7
+ attr_reader :examples
8
+
9
+ def initialize(docstring, options = {}, &block)
10
+ @description = docstring
11
+ @block = block
12
+ @examples = []
13
+ instance_exec(&@block) if block_given?
14
+ @@example_groups << self
15
+ end
16
+
17
+ def run
18
+ failures = pending = 0
19
+ examples.reject do |example|
20
+ if example.pending?
21
+ pending += 1
22
+ $stdout.print "* #{example.description}\n"
23
+ true
24
+ else
25
+ false
26
+ end
27
+ end.each do |example|
28
+ failures += example.run
29
+ $stdout.print "* #{example.description}\n"
30
+ end
31
+ [examples.count, failures, pending]
32
+ end
33
+
34
+ def add_example(example)
35
+ examples << example
36
+ end
37
+
38
+ class << self
39
+ attr_reader :example_groups
40
+
41
+ def destroy_all
42
+ @@example_groups = []
43
+ end
44
+
45
+ def run_all
46
+ result = [0,0,0]
47
+ @@example_groups.each do |g|
48
+ puts g.description
49
+ group_result = g.run
50
+ result = result.zip(group_result).map{ |pair| pair[0] + pair[1] }
51
+ end
52
+ result
53
+ end
54
+
55
+ def count
56
+ @@example_groups.count
57
+ end
58
+ end
59
+
60
+ end
61
+ end
@@ -0,0 +1,3 @@
1
+ module Stendhal
2
+ VERSION = "0.0.1"
3
+ end
data/lib/stendhal.rb ADDED
@@ -0,0 +1,6 @@
1
+ require 'stendhal/assertions'
2
+ require 'stendhal/example'
3
+ require 'stendhal/example_group'
4
+
5
+ require 'stendhal/core_ext/kernel'
6
+ require 'stendhal/dsl'
data/script/console ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ require "irb"
3
+ lib_path = File.expand_path(File.dirname(__FILE__) + "/../lib")
4
+ $LOAD_PATH.unshift lib_path unless $LOAD_PATH.include?(lib_path)
5
+
6
+ require 'stendhal'
7
+
8
+ IRB.start(__FILE__)
@@ -0,0 +1,13 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+
4
+ require 'rubygems'
5
+
6
+ require 'simplecov'
7
+ SimpleCov.start do
8
+ add_group "Lib", 'lib'
9
+ end
10
+
11
+ require 'stendhal'
12
+ require 'rspec'
13
+ require 'rspec/autorun'
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ class MyClass
4
+ include Stendhal::Assertions
5
+ end
6
+
7
+ module Stendhal
8
+ describe Assertions do
9
+
10
+ subject { MyClass.new }
11
+
12
+ describe "#assert" do
13
+
14
+ it "does nothing if asserted expression returns true" do
15
+ subject.assert true
16
+ end
17
+
18
+ it "raises an AssertionFailed exception otherwise" do
19
+ expect { subject.assert false }.to raise_error(AssertionFailed)
20
+ end
21
+
22
+ it "yields a given message for the error" do
23
+ expect { subject.assert false, "softwared!" }.to raise_error(AssertionFailed, "softwared!")
24
+ end
25
+
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Kernel extensions" do
4
+ pending "conflicting with RSpec DSL"
5
+ end
@@ -0,0 +1,87 @@
1
+ require 'spec_helper'
2
+
3
+ module Stendhal
4
+ describe ExampleGroup do
5
+
6
+ before(:each) do
7
+ ExampleGroup.destroy_all
8
+ Example.destroy_all
9
+ end
10
+
11
+ it "is created with a docstring and a block" do
12
+ group = ExampleGroup.new("docstring") do
13
+
14
+ end
15
+ group.description.should == "docstring"
16
+ end
17
+
18
+ it "allows example declaration inside the block" do
19
+ expect {
20
+ ExampleGroup.new("docstring") do
21
+ it "does something" do
22
+ end
23
+ end
24
+ }.to_not raise_error
25
+ end
26
+
27
+ describe "#add_example" do
28
+ it 'adds an example to the group' do
29
+ group = ExampleGroup.new("docstring")
30
+ group.add_example Example.new("docstring")
31
+ group.should have(1).examples
32
+ end
33
+ end
34
+
35
+ describe "#run" do
36
+ before(:each) do
37
+ @runnable_examples = []
38
+ @group = ExampleGroup.new("group")
39
+ 4.times do
40
+ example = Example.new("some example") do
41
+ assert true
42
+ end
43
+ @runnable_examples << example
44
+ @group.add_example example
45
+ end
46
+ @failing_example = Example.new("failing") do
47
+ assert false
48
+ end
49
+ @group.add_example @failing_example
50
+ @pending_example = Example.new("pending")
51
+ @group.add_example @pending_example
52
+ end
53
+
54
+ it "runs all non-pending examples" do
55
+ @runnable_examples.each {|e| e.should_receive(:run).once.and_return(0)}
56
+ @failing_example.should_receive(:run).once.and_return(1)
57
+ @pending_example.should_not_receive(:run)
58
+
59
+ @group.run
60
+ end
61
+
62
+ it "returns an array with total examples, failures and pendings" do
63
+ @group.run.should == [6,1,1]
64
+ end
65
+ end
66
+
67
+ describe "class methods" do
68
+ describe "#count" do
69
+ it "returns the number of example groups in memory" do
70
+ ExampleGroup.new("group")
71
+ ExampleGroup.count.should == 1
72
+ end
73
+ end
74
+ describe "#run_all" do
75
+ it "sums all the examples, failures and pendings and returns them as an array" do
76
+ group1 = ExampleGroup.new("group")
77
+ group1.stub(:run).and_return([1,2,3])
78
+ group2 = ExampleGroup.new("group")
79
+ group2.stub(:run).and_return([1,0,1])
80
+
81
+ ExampleGroup.run_all.should == [2,2,4]
82
+ end
83
+ end
84
+ end
85
+
86
+ end
87
+ end
@@ -0,0 +1,65 @@
1
+ require 'spec_helper'
2
+
3
+ module Stendhal
4
+ describe Example do
5
+
6
+ before(:each) do
7
+ Example.destroy_all
8
+ end
9
+
10
+ let(:example_group) { double('example group') }
11
+
12
+ it "is created with a docstring and a block" do
13
+ example = Example.new("docstring") do
14
+ 3 + 4
15
+ end
16
+ example.description.should == "docstring"
17
+ end
18
+
19
+ it "is pending unless given a block" do
20
+ example = Example.new("pending")
21
+ example.should be_pending
22
+ end
23
+
24
+ describe "#run" do
25
+
26
+ it "calls the block" do
27
+ example = Example.new("docstring") do
28
+ 3 + 4
29
+ end
30
+ example.should_receive(:instance_eval)
31
+
32
+ example.run
33
+ end
34
+
35
+ it "captures failed assertions" do
36
+ example = Example.new("docstring") do
37
+ assert false
38
+ end
39
+ expect {example.run}.to_not raise_error
40
+ example.run
41
+ example.should be_failed
42
+ end
43
+
44
+ it "captures exceptions" do
45
+ example = Example.new("docstring") do
46
+ raise "error"
47
+ end
48
+ expect {example.run}.to_not raise_error
49
+ example.run
50
+ example.should be_aborted
51
+ end
52
+
53
+ end
54
+
55
+ describe "class methods" do
56
+ describe "#count" do
57
+ it "returns the number of examples in memory" do
58
+ Example.new("pending")
59
+ Example.count.should == 1
60
+ end
61
+ end
62
+ end
63
+
64
+ end
65
+ end
data/stendhal.gemspec ADDED
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "stendhal/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "stendhal"
7
+ s.version = Stendhal::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Josep M. Bach"]
10
+ s.email = ["josep.m.bach@gmail.com"]
11
+ s.homepage = "http://rubygems.org/gems/stendhal"
12
+ s.summary = %q{Stendhal is a really simple test framework.}
13
+ s.description = %q{Stendhal is a really simple test framework.}
14
+
15
+ s.rubyforge_project = "stendhal"
16
+ s.default_executable = "stendhal"
17
+
18
+ s.add_development_dependency "rspec"
19
+ s.add_development_dependency "simplecov"
20
+ s.add_development_dependency "cucumber", "=0.8.5"
21
+ s.add_development_dependency "aruba"
22
+
23
+ s.files = `git ls-files`.split("\n")
24
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
25
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
26
+ s.require_paths = ["lib"]
27
+ end
metadata ADDED
@@ -0,0 +1,148 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: stendhal
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Josep M. Bach
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-10-29 00:00:00 +02:00
18
+ default_executable: stendhal
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rspec
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ version: "0"
31
+ type: :development
32
+ version_requirements: *id001
33
+ - !ruby/object:Gem::Dependency
34
+ name: simplecov
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ version: "0"
44
+ type: :development
45
+ version_requirements: *id002
46
+ - !ruby/object:Gem::Dependency
47
+ name: cucumber
48
+ prerelease: false
49
+ requirement: &id003 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - "="
53
+ - !ruby/object:Gem::Version
54
+ segments:
55
+ - 0
56
+ - 8
57
+ - 5
58
+ version: 0.8.5
59
+ type: :development
60
+ version_requirements: *id003
61
+ - !ruby/object:Gem::Dependency
62
+ name: aruba
63
+ prerelease: false
64
+ requirement: &id004 !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ segments:
70
+ - 0
71
+ version: "0"
72
+ type: :development
73
+ version_requirements: *id004
74
+ description: Stendhal is a really simple test framework.
75
+ email:
76
+ - josep.m.bach@gmail.com
77
+ executables:
78
+ - stendhal
79
+ extensions: []
80
+
81
+ extra_rdoc_files: []
82
+
83
+ files:
84
+ - .gitignore
85
+ - .rspec
86
+ - .rvmrc
87
+ - Gemfile
88
+ - Gemfile.lock
89
+ - Rakefile
90
+ - Readme.md
91
+ - bin/stendhal
92
+ - features/examples.feature
93
+ - features/support/env.rb
94
+ - lib/stendhal.rb
95
+ - lib/stendhal/assertions.rb
96
+ - lib/stendhal/autorun.rb
97
+ - lib/stendhal/core_ext/kernel.rb
98
+ - lib/stendhal/dsl.rb
99
+ - lib/stendhal/example.rb
100
+ - lib/stendhal/example_group.rb
101
+ - lib/stendhal/version.rb
102
+ - script/console
103
+ - spec/spec_helper.rb
104
+ - spec/stendhal/assertions_spec.rb
105
+ - spec/stendhal/core_ext/kernel_spec.rb
106
+ - spec/stendhal/example_group_spec.rb
107
+ - spec/stendhal/example_spec.rb
108
+ - stendhal.gemspec
109
+ has_rdoc: true
110
+ homepage: http://rubygems.org/gems/stendhal
111
+ licenses: []
112
+
113
+ post_install_message:
114
+ rdoc_options: []
115
+
116
+ require_paths:
117
+ - lib
118
+ required_ruby_version: !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ segments:
124
+ - 0
125
+ version: "0"
126
+ required_rubygems_version: !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ segments:
132
+ - 0
133
+ version: "0"
134
+ requirements: []
135
+
136
+ rubyforge_project: stendhal
137
+ rubygems_version: 1.3.7
138
+ signing_key:
139
+ specification_version: 3
140
+ summary: Stendhal is a really simple test framework.
141
+ test_files:
142
+ - features/examples.feature
143
+ - features/support/env.rb
144
+ - spec/spec_helper.rb
145
+ - spec/stendhal/assertions_spec.rb
146
+ - spec/stendhal/core_ext/kernel_spec.rb
147
+ - spec/stendhal/example_group_spec.rb
148
+ - spec/stendhal/example_spec.rb