allure-rspec 0.3.4 → 0.4.0

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: 94fdce22859d8df7204968151db9efb0cade07aa
4
- data.tar.gz: cd36d1f23992e382b80e403409c6c0302082d5df
3
+ metadata.gz: 508534700db94be2b689f750c44328efdd5de1c9
4
+ data.tar.gz: 1f08ed1aaa1e60d1828e356fd4b0809e71acb714
5
5
  SHA512:
6
- metadata.gz: 3880801f35eee981a6b783956b57543b365409b2638f508cac7f1fabb73ab699d88d9c026bde1f59a237c3e2a971d594a8e7b89e59f7146c555be1c7591f972c
7
- data.tar.gz: c9c303a719d88f107c074a35445cfdac20a1ccca46dc1de498f8bb816764a2ed50bab6a1f516d57d5504b7a34503bafec7edf34e9b70d55d2fd96830a8ba9f08
6
+ metadata.gz: 7cd225374e89b44d2b6b6968a5710483e91d62efac8728cc4a296d2bf28d9898590b56c4bc9d1b5a7d1766b0763c41d75f1ef8c88ca41dc7d16edd7c4f4f02da
7
+ data.tar.gz: 186f6bea16e012666d0c9b6fa16343254b6dcdaff55630cd55ca9f70bb5bf26c6f5f70446424b7da65c526f748697d100d1bc0678fdac511cfe5c8f41cf11a8c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- allure-rspec (0.3.4)
4
+ allure-rspec (0.4.0)
5
5
  mimemagic
6
6
  nokogiri (~> 1.6.0)
7
7
  rspec (~> 2.14.0)
data/lib/allure-rspec.rb CHANGED
@@ -3,6 +3,7 @@ require 'allure-rspec/formatter'
3
3
  require 'allure-rspec/adaptor'
4
4
  require 'allure-rspec/dsl'
5
5
  require 'allure-rspec/builder'
6
+ require 'allure-rspec/hooks'
6
7
 
7
8
  module AllureRSpec
8
9
  include AllureRSpec::DSL
@@ -10,12 +11,17 @@ module AllureRSpec
10
11
  module Config
11
12
  class << self
12
13
  attr_accessor :output_dir
14
+ attr_accessor :rspec
13
15
 
14
16
  DEFAULT_OUTPUT_DIR = 'allure/data'
15
17
 
16
18
  def output_dir
17
19
  @output_dir || DEFAULT_OUTPUT_DIR
18
20
  end
21
+
22
+ def rspec
23
+ @rspec
24
+ end
19
25
  end
20
26
  end
21
27
 
@@ -1,10 +1,12 @@
1
1
  module AllureRSpec
2
2
  module Adaptor
3
3
  def self.included(base)
4
+ AllureRSpec::Config.rspec = base
4
5
  base.send :include, AllureRSpec::DSL
5
6
  if RSpec.configuration.formatters.find_all {|f| f.is_a?(AllureRSpec::Formatter)}.empty?
6
7
  RSpec.configuration.add_formatter(AllureRSpec::Formatter)
7
8
  end
9
+ RSpec::Core::ExampleGroup.send :include, AllureRSpec::Hooks
8
10
  end
9
11
  end
10
12
  end
@@ -3,8 +3,6 @@ require 'mimemagic'
3
3
  module AllureRSpec
4
4
  module DSL
5
5
 
6
- ALLOWED_ATTACH_EXTS = %w[txt html xml png jpg json]
7
-
8
6
  def __mutex
9
7
  @@__mutex ||= Mutex.new
10
8
  end
@@ -19,9 +17,14 @@ module AllureRSpec
19
17
 
20
18
  def __with_step(step, &block)
21
19
  __mutex.synchronize do
22
- @@__current_step = step
23
- yield
24
- @@__current_step = nil
20
+ begin
21
+ Config.rspec.send :run_hook, :before, :step, example
22
+ @@__current_step = step
23
+ yield
24
+ ensure
25
+ Config.rspec.send :run_hook, :after, :step, example
26
+ @@__current_step = nil
27
+ end
25
28
  end
26
29
  end
27
30
 
@@ -0,0 +1,55 @@
1
+ module AllureRSpec
2
+ module Hooks
3
+
4
+ def self.included(cls)
5
+ cls.extend OverrideHooksMethods
6
+ end
7
+
8
+ module OverrideHooksMethods
9
+ include RSpec::Core::Hooks
10
+ alias_method :old_extract_scope_from, :extract_scope_from
11
+ alias_method :old_hooks, :hooks
12
+ alias_method :old_find_hook, :find_hook
13
+
14
+ SCOPES = [:each, :all, :suite, :step]
15
+
16
+ def hooks
17
+ if @__hooks.nil?
18
+ @__hooks ||= old_hooks
19
+ [:before, :after].each { |scope|
20
+ @__hooks[scope][:step] = HookCollection.new
21
+ }
22
+ end
23
+ @__hooks
24
+ end
25
+
26
+ def before_step_hooks_for(example)
27
+ HookCollection.new(parent_groups.reverse.map { |a| a.hooks[:before][:step] }.flatten).for(example)
28
+ end
29
+
30
+ def after_step_hooks_for(example)
31
+ HookCollection.new(parent_groups.map { |a| a.hooks[:after][:step] }.flatten).for(example)
32
+ end
33
+
34
+ def find_hook(hook, scope, example_or_group, initial_procsy)
35
+ case [hook, scope]
36
+ when [:before, :step]
37
+ before_step_hooks_for(example_or_group)
38
+ when [:after, :step]
39
+ after_step_hooks_for(example_or_group)
40
+ else
41
+ old_find_hook(hook, scope, example_or_group, initial_procsy)
42
+ end
43
+ end
44
+
45
+ def extract_scope_from(args)
46
+ if SCOPES.include?(args.first)
47
+ args.shift
48
+ else
49
+ old_extract_scope_from(args)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+
@@ -1,5 +1,5 @@
1
1
  module AllureRSpec # :nodoc:
2
2
  module Version # :nodoc:
3
- STRING = '0.3.4'
3
+ STRING = '0.4.0'
4
4
  end
5
5
  end
data/spec/another_spec.rb CHANGED
@@ -3,6 +3,14 @@ require 'tempfile'
3
3
 
4
4
  describe "Some another spec" do
5
5
 
6
+ before(:each) do
7
+ puts "before each"
8
+ end
9
+
10
+ after(:each) do
11
+ puts "after each"
12
+ end
13
+
6
14
  it "10 cannot be greater than 19" do
7
15
  10.should > 19
8
16
  end
@@ -2,6 +2,39 @@ require 'spec_helper'
2
2
  require 'tempfile'
3
3
 
4
4
  describe AllureRSpec do
5
+
6
+ before(:suite) do
7
+ puts "before suite"
8
+ end
9
+
10
+ before(:all) do
11
+ puts "before all"
12
+ end
13
+
14
+ before(:step) do
15
+ puts "before step"
16
+ end
17
+
18
+ before(:each) do
19
+ puts "before each"
20
+ end
21
+
22
+ after(:step) do
23
+ puts "after step"
24
+ end
25
+
26
+ after(:each) do
27
+ puts "after each"
28
+ end
29
+
30
+ after(:suite) do
31
+ puts "after suite"
32
+ end
33
+
34
+ after(:all) do
35
+ puts "after all"
36
+ end
37
+
5
38
  it "should build" do
6
39
  attach_file "test-file1", Tempfile.new("test")
7
40
  step "step1" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allure-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ilya Sadykov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-21 00:00:00.000000000 Z
11
+ date: 2014-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -112,6 +112,7 @@ files:
112
112
  - lib/allure-rspec/builder.rb
113
113
  - lib/allure-rspec/dsl.rb
114
114
  - lib/allure-rspec/formatter.rb
115
+ - lib/allure-rspec/hooks.rb
115
116
  - lib/allure-rspec/version.rb
116
117
  - logo.png
117
118
  - spec/another_spec.rb
@@ -140,5 +141,5 @@ rubyforge_project:
140
141
  rubygems_version: 2.0.3
141
142
  signing_key:
142
143
  specification_version: 4
143
- summary: allure-rspec-0.3.4
144
+ summary: allure-rspec-0.4.0
144
145
  test_files: []