Class: Rake::TestTask

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_parallel/rake.rb

Constant Summary collapse

@@patched =
false

Instance Method Summary collapse

Constructor Details

#initialize(name = :test) {|_self| ... } ⇒ TestTask

Returns a new instance of TestTask.

Yields:

  • (_self)

Yield Parameters:



143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# File 'lib/rails_parallel/rake.rb', line 143

def initialize(name=:test)
  if name.kind_of? Hash
    @name    = name.keys.first
    @depends = name.values.first
  else
    @name    = name
    @depends = []
  end
  @full_name = [Rake.application.current_scope, @name].join(':')

  @libs = ["lib"]
  @pattern = nil
  @options = nil
  @test_files = nil
  @verbose = false
  @warning = false
  @loader = :rake
  @ruby_opts = []
  yield self if block_given?
  @pattern = 'test/test*.rb' if @pattern.nil? && @test_files.nil?

  if !@@patched && self.class.name == 'TestTaskWithoutDescription'
    TestTaskWithoutDescription.class_eval { def define; super(false); end }
    @@patched = true
  end

  define
end

Instance Method Details

#define(describe = true) ⇒ Object



172
173
174
175
176
177
178
179
180
# File 'lib/rails_parallel/rake.rb', line 172

def define(describe = true)
  lib_path = @libs.join(File::PATH_SEPARATOR)
  desc "Run tests" + (@full_name == :test ? "" : " for #{@name}") if describe
  task @name => @depends do
    files = file_list.map {|f| f =~ /[\*\?\[\]]/ ? FileList[f] : f }.flatten(1)
    RailsParallel::Rake.run(@full_name, ruby_opts, files)
  end
  self
end