From 1a9e0d381c1861ce6af071219facee4658b5c2fb Mon Sep 17 00:00:00 2001 From: Christian Meier Date: Sun, 19 Jul 2015 14:51:39 +0200 Subject: [PATCH] add version configuration for each rspec task --- .../com/github/jrubygradle/rspec/RSpec.groovy | 5 +++ .../rspec/JRubyRSpecPluginSpec.groovy | 39 +++++++++++++++++++ .../resources/rspec-version/spec/one_spec.rb | 6 +++ .../test/resources/simple/spec/one_spec.rb | 5 +++ 4 files changed, 55 insertions(+) create mode 100644 jruby-gradle-rspec-plugin/src/test/resources/rspec-version/spec/one_spec.rb diff --git a/jruby-gradle-rspec-plugin/src/main/groovy/com/github/jrubygradle/rspec/RSpec.groovy b/jruby-gradle-rspec-plugin/src/main/groovy/com/github/jrubygradle/rspec/RSpec.groovy index d806825..3516380 100644 --- a/jruby-gradle-rspec-plugin/src/main/groovy/com/github/jrubygradle/rspec/RSpec.groovy +++ b/jruby-gradle-rspec-plugin/src/main/groovy/com/github/jrubygradle/rspec/RSpec.groovy @@ -19,11 +19,16 @@ class RSpec extends DefaultTask { static final String DEFAULT_VERSION = '3.3.0' + @Input String version = DEFAULT_VERSION @Input String jrubyVersion = project.jruby.defaultVersion + void version(String version) { + this.version = version + } + void jrubyVersion(String version) { this.jrubyVersion = version } diff --git a/jruby-gradle-rspec-plugin/src/test/groovy/com/github/jrubygradle/rspec/JRubyRSpecPluginSpec.groovy b/jruby-gradle-rspec-plugin/src/test/groovy/com/github/jrubygradle/rspec/JRubyRSpecPluginSpec.groovy index 9092ef4..a2f9b06 100644 --- a/jruby-gradle-rspec-plugin/src/test/groovy/com/github/jrubygradle/rspec/JRubyRSpecPluginSpec.groovy +++ b/jruby-gradle-rspec-plugin/src/test/groovy/com/github/jrubygradle/rspec/JRubyRSpecPluginSpec.groovy @@ -186,4 +186,43 @@ class JRubyRSpecPluginSpec extends Specification { expect: output.contains( '2 examples, 0 failures' ) } + + def "Run custom rspec version"() { + given: + Files.createSymbolicLink(specDir.toPath(), new File('src/test/resources/rspec-version/spec').getAbsoluteFile().toPath()) + Task task = project.tasks.getByName('rspec') + task.configure { + version = '3.2.0' + } + project.evaluate() + String output = captureStdout { + task.run() + } + println output + expect: + output.contains( '1 example, 0 failures' ) + } + + def "Run custom rspec version separate from other tasks"() { + given: + Files.createSymbolicLink(specDir.toPath(), new File('src/test/resources/rspec-version/spec').getAbsoluteFile().toPath()) + Task task = project.tasks.create('other', RSpec) + task.configure { + version = '3.2.0' + } + project.evaluate() + String outputOther = captureStdout { + task.run() + } + println outputOther + specDir.delete() + Files.createSymbolicLink(specDir.toPath(), new File('src/test/resources/simple/spec').getAbsoluteFile().toPath()) + String output = captureStdout { + project.tasks.getByName('rspec').run() + } + println output + expect: + outputOther.contains( '1 example, 0 failures' ) + output.contains( '4 examples, 0 failures' ) + } } diff --git a/jruby-gradle-rspec-plugin/src/test/resources/rspec-version/spec/one_spec.rb b/jruby-gradle-rspec-plugin/src/test/resources/rspec-version/spec/one_spec.rb new file mode 100644 index 0000000..680e39b --- /dev/null +++ b/jruby-gradle-rspec-plugin/src/test/resources/rspec-version/spec/one_spec.rb @@ -0,0 +1,6 @@ +describe 'RSpecVersion' do + it 'uses the right rspec version' do + require 'rspec' + expect(Gem.loaded_specs['rspec'].version.to_s).to eq '3.2.0' + end +end diff --git a/jruby-gradle-rspec-plugin/src/test/resources/simple/spec/one_spec.rb b/jruby-gradle-rspec-plugin/src/test/resources/simple/spec/one_spec.rb index 5ac48a6..39c9509 100644 --- a/jruby-gradle-rspec-plugin/src/test/resources/simple/spec/one_spec.rb +++ b/jruby-gradle-rspec-plugin/src/test/resources/simple/spec/one_spec.rb @@ -10,4 +10,9 @@ describe 'Simple' do it 'has some loaded gems' do expect(Gem.loaded_specs.size).to eq 6 end + + it 'has some loaded gems' do + require 'rspec' + expect(Gem.loaded_specs['rspec'].version.to_s).not_to eq '3.2.0' + end end