lookout-rake 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +66 -0
- data/Rakefile +13 -0
- data/lib/lookout/rake-3.0.rb +10 -0
- data/lib/lookout/rake/tasks.rb +5 -0
- data/lib/lookout/rake/tasks/test.rb +170 -0
- data/lib/lookout/rake/tasks/test/loader.rb +4 -0
- data/lib/lookout/rake/version.rb +39 -0
- data/test/unit/lookout/rake-3.0.rb +4 -0
- data/test/unit/lookout/rake/tasks.rb +4 -0
- data/test/unit/lookout/rake/tasks/test.rb +106 -0
- data/test/unit/lookout/rake/version.rb +4 -0
- metadata +117 -0
data/README
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
Lookout-Rake
|
2
|
+
|
3
|
+
Lookout-Rake provides Rake tasks for testing using Lookout.
|
4
|
+
|
5
|
+
§ Installation
|
6
|
+
|
7
|
+
Install Lookout-Rake with
|
8
|
+
|
9
|
+
% gem install lookout
|
10
|
+
|
11
|
+
§ Usage
|
12
|
+
|
13
|
+
Include the following code in your ‹Rakefile›:
|
14
|
+
|
15
|
+
require 'lookout/rake-3.0'
|
16
|
+
|
17
|
+
Lookout::Rake::Tasks::Test.new
|
18
|
+
|
19
|
+
If the ‹:default› task hasn’t been defined it’ll be set to depend on the
|
20
|
+
‹:test› task. The ‹:check› task will also depend on the ‹:test› task.
|
21
|
+
There’s also a ‹:test:coverage› task that gets defined that uses the
|
22
|
+
coverage library that comes with Ruby 1.9 to check the test coverage when
|
23
|
+
the tests are run.
|
24
|
+
|
25
|
+
You can hook up your test task to use your Inventory¹:
|
26
|
+
|
27
|
+
require 'library/version.rb'
|
28
|
+
|
29
|
+
Lookout::Rake::Tasks::Test.new :inventory => Library::Version
|
30
|
+
|
31
|
+
Also, if you use the tasks that come with Inventory, the test task will
|
32
|
+
hook into the inventory you tell them to use automatically.
|
33
|
+
|
34
|
+
To use Lookout together with Vim², place ‹contrib/rakelookout.vim› in
|
35
|
+
‹~/.vim/compiler› and add
|
36
|
+
|
37
|
+
compiler rakelookout
|
38
|
+
|
39
|
+
to ‹~/.vim/after/ftplugin/ruby.vim›. Executing ‹:make› from inside Vim
|
40
|
+
will now run your tests and an errors and failures can be visited with
|
41
|
+
‹:cnext›. Execute ‹:help quickfix› for additional information.
|
42
|
+
|
43
|
+
Another useful addition to your ‹~/.vim/after/ftplugin/ruby.vim› file may
|
44
|
+
be
|
45
|
+
|
46
|
+
nnoremap <buffer> <silent> <Leader>M <Esc>:call <SID>run_test()<CR>
|
47
|
+
let b:undo_ftplugin .= ' | nunmap <buffer> <Leader>M'
|
48
|
+
|
49
|
+
function! s:run_test()
|
50
|
+
let test = expand('%')
|
51
|
+
let line = 'LINE=' . line('.')
|
52
|
+
if test =~ '^lib/'
|
53
|
+
let test = substitute(test, '^lib/', 'test/', '')
|
54
|
+
let line = ""
|
55
|
+
endif
|
56
|
+
execute 'make' 'TEST=' . shellescape(test) line
|
57
|
+
endfunction
|
58
|
+
|
59
|
+
Now, pressing ‹<Leader>M› will either run all tests for a given class, if
|
60
|
+
the implementation file is active, or run the test at or just before the
|
61
|
+
cursor, if the test file is active. This is useful if you’re currently
|
62
|
+
receiving a lot of errors and/or failures and want to focus on those
|
63
|
+
associated with a specific class or on a specific test.
|
64
|
+
|
65
|
+
¹ Get information on Inventory at http://disu.se/software/inventory/
|
66
|
+
² Find out more about Vim at http://www.vim.org/
|
data/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'inventory/rake-1.0'
|
4
|
+
|
5
|
+
$:.unshift File.expand_path('../lib', __FILE__)
|
6
|
+
require 'lookout/rake-3.0'
|
7
|
+
|
8
|
+
Inventory::Rake::Tasks.define Lookout::Rake::Version, :gem => proc{ |_, s|
|
9
|
+
s.author = 'Nikolai Weibull'
|
10
|
+
s.email = 'now@bitwi.se'
|
11
|
+
s.homepage = 'https://github.com/now/lookout-rake'
|
12
|
+
}
|
13
|
+
Lookout::Rake::Tasks::Test.new
|
@@ -0,0 +1,170 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
# Rake task for running expectation tests.
|
4
|
+
class Lookout::Rake::Tasks::Test
|
5
|
+
include Rake::DSL
|
6
|
+
|
7
|
+
LoaderPath = File.join(File.dirname(__FILE__), 'test/loader.rb')
|
8
|
+
Paths = %w'lib'
|
9
|
+
|
10
|
+
# Defines a Rake task for running expectation tests named _:name_. Also
|
11
|
+
# defines a task for running expectations with coverage name
|
12
|
+
# _:name_:coverage. If _:name_ `#==` `:test`, then the default task is set
|
13
|
+
# to depend on it, unless the default task has already been defined, as well
|
14
|
+
# as the `:check` task.
|
15
|
+
#
|
16
|
+
# Optionally yields the _task_ being created so that it may be adjusted
|
17
|
+
# further before being defined.
|
18
|
+
# @param [Hash] options
|
19
|
+
# @option options [Symbol] :name (:test) The name of the task
|
20
|
+
# @option options [Array<String>] :paths (['lib']) The paths to add to
|
21
|
+
# `$LOAD_PATH`
|
22
|
+
# @option options [Array<String>] :requires ([]) The libraries to require
|
23
|
+
# @option options [Array<String>] :files (FileList[ENV['TEST']]) The
|
24
|
+
# expectation files to load
|
25
|
+
# @option options [Inventory] :inventory (Inventory::Rake::Tasks.inventory)
|
26
|
+
# The Inventory to look for :paths, :requires, and :files in, see
|
27
|
+
# {#inventory=} (the default is only used if `inventory/rake-1.0` has
|
28
|
+
# been required)
|
29
|
+
# @option options [Gem::Specification] :specification The Gem specification
|
30
|
+
# to look for :paths and :requires in, see {#specification=}
|
31
|
+
# @option options [Array<String>] :options (['-w']) The options to pass to
|
32
|
+
# ruby
|
33
|
+
# @yield [?]
|
34
|
+
# @yieldparam [Test] task
|
35
|
+
def initialize(options = {})
|
36
|
+
self.name = options.fetch(:name, :test)
|
37
|
+
self.paths = options.fetch(:paths, Paths)
|
38
|
+
self.requires = options.fetch(:requires, [])
|
39
|
+
self.files = options.fetch(:files){ ENV.include?('TEST') ? FileList[ENV['TEST']] : nil }
|
40
|
+
inventory = options[:inventory] ||
|
41
|
+
(provided?('inventory/rake-1.0') and Inventory::Rake::Tasks.inventory) and
|
42
|
+
self.inventory = inventory
|
43
|
+
self.specification = options.fetch(:specification) if options.include? :specification
|
44
|
+
self.options = options.fetch(:options, %w'-w')
|
45
|
+
yield self if block_given?
|
46
|
+
define
|
47
|
+
end
|
48
|
+
|
49
|
+
# @return [Symbol] The name of the task
|
50
|
+
attr_reader :name
|
51
|
+
|
52
|
+
# @param [Symbol] value
|
53
|
+
# @return [Symbol] The new name of the task: _value_
|
54
|
+
attr_writer :name
|
55
|
+
|
56
|
+
# @return [Array<String>] The paths to add to `$LOAD_PATH`; may load
|
57
|
+
# {#specification}
|
58
|
+
def paths
|
59
|
+
return @paths if @paths and not @paths.equal? Paths
|
60
|
+
self.specification = specification
|
61
|
+
@paths
|
62
|
+
end
|
63
|
+
|
64
|
+
# @param [Array<String>] value
|
65
|
+
# @return [Array<String>] The new paths to add to `$LOAD_PATH`: _value_
|
66
|
+
attr_writer :paths
|
67
|
+
|
68
|
+
# @return [Array<String>] The libraries to require; may load {#specification}
|
69
|
+
def requires
|
70
|
+
return @requires unless @requires.empty?
|
71
|
+
self.specification = specification
|
72
|
+
@requires
|
73
|
+
end
|
74
|
+
|
75
|
+
# @param [Array<String>] value
|
76
|
+
# @return [Array<String>] The new libraries to require: _value_
|
77
|
+
attr_writer :requires
|
78
|
+
|
79
|
+
# @return [Array<String>] The expectation files to load; defaults to
|
80
|
+
# `FileList['test/unit/**/*.rb]`
|
81
|
+
def files
|
82
|
+
@files ||= FileList['test/unit/**/*.rb']
|
83
|
+
end
|
84
|
+
|
85
|
+
# @param [Array<String>] value
|
86
|
+
# @return [Array<String>] The new expectation files to load: _value_
|
87
|
+
attr_writer :files
|
88
|
+
|
89
|
+
# @return [Inventory] The inventory to use
|
90
|
+
attr_reader :inventory
|
91
|
+
|
92
|
+
# @param [Inventory] inventory
|
93
|
+
# @return [Inventory] The new inventory to use for {#paths}, {#requires}, and
|
94
|
+
# {#files}: _inventory_
|
95
|
+
def inventory=(inventory)
|
96
|
+
self.paths = inventory.lib_directories
|
97
|
+
self.requires = [inventory.package_require]
|
98
|
+
@files ||= inventory.unit_test_files
|
99
|
+
inventory
|
100
|
+
end
|
101
|
+
|
102
|
+
# @return [Gem::Specification] The specification to use; will try to find one
|
103
|
+
# by looking for `*.gemspec` in the current directory
|
104
|
+
# @raise [RuntimeError] If no specification has been set and one can’t be
|
105
|
+
# found in the current directory (the project root directory)
|
106
|
+
def specification
|
107
|
+
return @specification if defined? @specification
|
108
|
+
return nil unless defined? ::Gem
|
109
|
+
gemspec = Dir['*.gemspec'].first
|
110
|
+
fail 'gem specification was not given and could not be found in project root: %s' %
|
111
|
+
Dir.pwd unless gemspec
|
112
|
+
@specification = Gem::Specification.load(gemspec)
|
113
|
+
end
|
114
|
+
|
115
|
+
# @param [Gem::Specification] specification
|
116
|
+
# @return [Gem::Specification] The new specification to use for {#paths} and
|
117
|
+
# {#requires}: _specification_
|
118
|
+
def specification=(specification)
|
119
|
+
self.paths = specification.require_paths
|
120
|
+
self.requires = [specification.name.gsub('-', '/')]
|
121
|
+
specification
|
122
|
+
end
|
123
|
+
|
124
|
+
# @return [Array<String>] The options to pass to ruby
|
125
|
+
attr_reader :options
|
126
|
+
|
127
|
+
# @param [Array<String>] value
|
128
|
+
# @return [Array<String>] The new options to pass to ruby: _value_
|
129
|
+
attr_writer :options
|
130
|
+
|
131
|
+
def define
|
132
|
+
desc @name == :test ? 'Run tests' : 'Run tests for %s' % @name
|
133
|
+
task @name do
|
134
|
+
run
|
135
|
+
end
|
136
|
+
|
137
|
+
desc @name == :test ? 'Check test coverage' : 'Check test coverage for %s' % @name
|
138
|
+
task :"#{@name}:coverage" do
|
139
|
+
run %w'-c'
|
140
|
+
end
|
141
|
+
|
142
|
+
task :default => @name unless Rake::Task.task_defined? :default
|
143
|
+
|
144
|
+
task :check => :test if @name == :test
|
145
|
+
end
|
146
|
+
|
147
|
+
private
|
148
|
+
|
149
|
+
def run(arguments = [])
|
150
|
+
ruby '%s -- %s %s' % [(options + paths.uniq.map{ |e| '-I%s' % e }).join(' '),
|
151
|
+
escape(LoaderPath),
|
152
|
+
requires.uniq.map{ |r| '-r%s' % r }.
|
153
|
+
concat(line).concat(arguments).
|
154
|
+
push('--').
|
155
|
+
concat(files.map{ |e| escape(e) }).join(' ')]
|
156
|
+
end
|
157
|
+
|
158
|
+
def line
|
159
|
+
return [] unless ENV['LINE'] and not ENV['LINE'].empty?
|
160
|
+
['-l%d' % ENV['LINE'].to_i]
|
161
|
+
end
|
162
|
+
|
163
|
+
def escape(path)
|
164
|
+
path.gsub(/([^A-Za-z0-9_\-.,:\/@\n])/n, '\\\\\\1').gsub(/\n/, "'\n'")
|
165
|
+
end
|
166
|
+
|
167
|
+
def provided?(path)
|
168
|
+
$LOADED_FEATURES.any?{ |e| e.end_with? path + File.extname(e) }
|
169
|
+
end
|
170
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
require 'inventory-1.0'
|
4
|
+
|
5
|
+
module Lookout::Rake
|
6
|
+
Version = Inventory.new(3, 0, 0){
|
7
|
+
def dependencies
|
8
|
+
super + Inventory::Dependencies.new{
|
9
|
+
development 'inventory-rake', 1, 2, 0
|
10
|
+
optional 'rake', 0, 9, 2
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
def requires
|
15
|
+
%w'
|
16
|
+
rake
|
17
|
+
'
|
18
|
+
end
|
19
|
+
|
20
|
+
def libs
|
21
|
+
%w'
|
22
|
+
lookout/rake/tasks.rb
|
23
|
+
lookout/rake/tasks/test.rb
|
24
|
+
'
|
25
|
+
end
|
26
|
+
|
27
|
+
def additional_libs
|
28
|
+
super + %w'
|
29
|
+
lookout/rake/tasks/test/loader.rb
|
30
|
+
'
|
31
|
+
end
|
32
|
+
|
33
|
+
def unit_tests
|
34
|
+
super - %w'
|
35
|
+
lookout/rake/tasks/test/loader.rb
|
36
|
+
'
|
37
|
+
end
|
38
|
+
}
|
39
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
Expectations do
|
4
|
+
expect '-w -Ilib -- %s -rtest-1.0 -- test/unit/test-1.0.rb test/unit/test/version.rb' %
|
5
|
+
Lookout::Rake::Tasks::Test::LoaderPath do
|
6
|
+
command = nil
|
7
|
+
Rake.application = Rake::Application.new
|
8
|
+
Lookout::Rake::Tasks::Test.new(:inventory => Inventory.new(1, 0, 0, 'test/lib/test/version.rb')){ |t|
|
9
|
+
stub(t).ruby{ |s| command = s }
|
10
|
+
}
|
11
|
+
Rake.application[:test].invoke
|
12
|
+
command
|
13
|
+
end
|
14
|
+
|
15
|
+
expect '-w -Ilib -- %s -rtest-1.0 -l123 -- test/unit/test-1.0.rb test/unit/test/version.rb' %
|
16
|
+
Lookout::Rake::Tasks::Test::LoaderPath do
|
17
|
+
command = nil
|
18
|
+
Rake.application = Rake::Application.new
|
19
|
+
Lookout::Rake::Tasks::Test.new(:inventory => Inventory.new(1, 0, 0, 'test/lib/test/version.rb')){ |t|
|
20
|
+
stub(t).ruby{ |s| command = s }
|
21
|
+
}
|
22
|
+
with_environment 'LINE' => '123' do
|
23
|
+
Rake.application[:test].invoke
|
24
|
+
end
|
25
|
+
command
|
26
|
+
end
|
27
|
+
|
28
|
+
expect '-w -Ilib -- %s -rtest-1.0 -c -- test/unit/test-1.0.rb test/unit/test/version.rb' %
|
29
|
+
Lookout::Rake::Tasks::Test::LoaderPath do
|
30
|
+
command = nil
|
31
|
+
Rake.application = Rake::Application.new
|
32
|
+
Lookout::Rake::Tasks::Test.new(:inventory => Inventory.new(1, 0, 0, 'test/lib/test/version.rb')){ |t|
|
33
|
+
stub(t).ruby{ |s| command = s }
|
34
|
+
}
|
35
|
+
Rake.application[:'test:coverage'].invoke
|
36
|
+
command
|
37
|
+
end
|
38
|
+
|
39
|
+
expect '-w -Ilib -- %s -rtest-1.0 -- test/unit/test-1.0.rb test/unit/test/version.rb' %
|
40
|
+
Lookout::Rake::Tasks::Test::LoaderPath do
|
41
|
+
with_constant 'Inventory::Rake::Tasks', Module.new do
|
42
|
+
stub(Inventory::Rake::Tasks).inventory{
|
43
|
+
Inventory.new(1, 0, 0, 'test/lib/test/version.rb')
|
44
|
+
}
|
45
|
+
stub($LOADED_FEATURES).any?{ true }
|
46
|
+
command = nil
|
47
|
+
Rake.application = Rake::Application.new
|
48
|
+
Lookout::Rake::Tasks::Test.new{ |t|
|
49
|
+
stub(t).ruby{ |s| command = s }
|
50
|
+
}
|
51
|
+
Rake.application[:test].invoke
|
52
|
+
command
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
expect RuntimeError.new(/\Agem specification was not given/) do
|
57
|
+
stub(Dir).[]{ [] }
|
58
|
+
Rake.application = Rake::Application.new
|
59
|
+
Lookout::Rake::Tasks::Test.new
|
60
|
+
Rake.application[:test].invoke
|
61
|
+
command
|
62
|
+
end
|
63
|
+
|
64
|
+
expect '-w -Ilib -- %s -rtest -- test/unit/test.rb test/unit/test/version.rb' %
|
65
|
+
Lookout::Rake::Tasks::Test::LoaderPath do
|
66
|
+
stub(Dir).[]{ %w'test.gemspec' }
|
67
|
+
stub(Gem::Specification).load{ Gem::Specification.new{ |s| s.name = 'test' } }
|
68
|
+
command = nil
|
69
|
+
Rake.application = Rake::Application.new
|
70
|
+
Lookout::Rake::Tasks::Test.new(:files => %w'test/unit/test.rb test/unit/test/version.rb'){ |t|
|
71
|
+
stub(t).ruby{ |s| command = s }
|
72
|
+
}
|
73
|
+
Rake.application[:test].invoke
|
74
|
+
command
|
75
|
+
end
|
76
|
+
|
77
|
+
expect '-w -Ilib -- %s -rtest -- test/unit/test.rb test/unit/test/version.rb' %
|
78
|
+
Lookout::Rake::Tasks::Test::LoaderPath do
|
79
|
+
command = nil
|
80
|
+
Rake.application = Rake::Application.new
|
81
|
+
Lookout::Rake::Tasks::Test.new(:specification => Gem::Specification.new{ |s|
|
82
|
+
s.name = 'test'
|
83
|
+
},
|
84
|
+
:files => %w'test/unit/test.rb test/unit/test/version.rb'){ |t|
|
85
|
+
stub(t).ruby{ |s| command = s }
|
86
|
+
}
|
87
|
+
Rake.application[:test].invoke
|
88
|
+
command
|
89
|
+
end
|
90
|
+
|
91
|
+
expect %w'lib' do
|
92
|
+
stub(Dir).[]{ %w'test.gemspec' }
|
93
|
+
stub(Gem::Specification).load{ Gem::Specification.new{ |s| s.name = 'test' } }
|
94
|
+
Rake.application = Rake::Application.new
|
95
|
+
Lookout::Rake::Tasks::Test.new(:paths => nil,
|
96
|
+
:files => %w'test/unit/test.rb test/unit/test/version.rb').paths
|
97
|
+
end
|
98
|
+
|
99
|
+
expect %w'test' do
|
100
|
+
stub(Dir).[]{ %w'test.gemspec' }
|
101
|
+
stub(Gem::Specification).load{ Gem::Specification.new{ |s| s.name = 'test' } }
|
102
|
+
Rake.application = Rake::Application.new
|
103
|
+
Lookout::Rake::Tasks::Test.new(:paths => nil,
|
104
|
+
:files => %w'test/unit/test.rb test/unit/test/version.rb').requires
|
105
|
+
end
|
106
|
+
end
|
metadata
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lookout-rake
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Nikolai Weibull
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-04-26 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: inventory
|
16
|
+
requirement: &15797340 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.2'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *15797340
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: inventory-rake
|
27
|
+
requirement: &15796764 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.2'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *15796764
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
requirement: &15796212 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.9.2
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *15796212
|
47
|
+
description: ! " Lookout-Rake\n\n Lookout-Rake provides
|
48
|
+
Rake tasks for testing using Lookout.\n\n§ Installation\n\n Install Lookout-Rake
|
49
|
+
with\n\n % gem install lookout\n\n§ Usage\n\n Include the following code in
|
50
|
+
your ‹Rakefile›:\n\n require 'lookout/rake-3.0'\n\n Lookout::Rake::Tasks::Test.new\n\n
|
51
|
+
\ If the ‹:default› task hasn’t been defined it’ll be set to depend on the\n ‹:test›
|
52
|
+
task. The ‹:check› task will also depend on the ‹:test› task.\n There’s also
|
53
|
+
a ‹:test:coverage› task that gets defined that uses the\n coverage library that
|
54
|
+
comes with Ruby 1.9 to check the test coverage when\n the tests are run.\n\n
|
55
|
+
\ You can hook up your test task to use your Inventory¹:\n\n require 'library/version.rb'\n\n
|
56
|
+
\ Lookout::Rake::Tasks::Test.new :inventory => Library::Version\n\n Also,
|
57
|
+
if you use the tasks that come with Inventory, the test task will\n hook into
|
58
|
+
the inventory you tell them to use automatically.\n\n To use Lookout together
|
59
|
+
with Vim², place ‹contrib/rakelookout.vim› in\n ‹~/.vim/compiler› and add\n\n
|
60
|
+
\ compiler rakelookout\n\n to ‹~/.vim/after/ftplugin/ruby.vim›. Executing
|
61
|
+
‹:make› from inside Vim\n will now run your tests and an errors and failures
|
62
|
+
can be visited with\n ‹:cnext›. Execute ‹:help quickfix› for additional information.\n\n
|
63
|
+
\ Another useful addition to your ‹~/.vim/after/ftplugin/ruby.vim› file may\n
|
64
|
+
\ be\n\n nnoremap <buffer> <silent> <Leader>M <Esc>:call <SID>run_test()<CR>\n
|
65
|
+
\ let b:undo_ftplugin .= ' | nunmap <buffer> <Leader>M'\n\n function! s:run_test()\n
|
66
|
+
\ let test = expand('%')\n let line = 'LINE=' . line('.')\n if
|
67
|
+
test =~ '^lib/'\n let test = substitute(test, '^lib/', 'test/', '')\n let
|
68
|
+
line = \"\"\n endif\n execute 'make' 'TEST=' . shellescape(test) line\n
|
69
|
+
\ endfunction\n\n Now, pressing ‹<Leader>M› will either run all tests for
|
70
|
+
a given class, if\n the implementation file is active, or run the test at or
|
71
|
+
just before the\n cursor, if the test file is active. This is useful if you’re
|
72
|
+
currently\n receiving a lot of errors and/or failures and want to focus on those\n
|
73
|
+
\ associated with a specific class or on a specific test.\n\n¹ Get information
|
74
|
+
on Inventory at http://disu.se/software/inventory/\n² Find out more about Vim at
|
75
|
+
http://www.vim.org/\n"
|
76
|
+
email: now@bitwi.se
|
77
|
+
executables: []
|
78
|
+
extensions: []
|
79
|
+
extra_rdoc_files: []
|
80
|
+
files:
|
81
|
+
- lib/lookout/rake/tasks.rb
|
82
|
+
- lib/lookout/rake/tasks/test.rb
|
83
|
+
- lib/lookout/rake-3.0.rb
|
84
|
+
- lib/lookout/rake/version.rb
|
85
|
+
- lib/lookout/rake/tasks/test/loader.rb
|
86
|
+
- test/unit/lookout/rake/tasks.rb
|
87
|
+
- test/unit/lookout/rake/tasks/test.rb
|
88
|
+
- test/unit/lookout/rake-3.0.rb
|
89
|
+
- test/unit/lookout/rake/version.rb
|
90
|
+
- README
|
91
|
+
- Rakefile
|
92
|
+
homepage: https://github.com/now/lookout-rake
|
93
|
+
licenses: []
|
94
|
+
metadata: {}
|
95
|
+
post_install_message:
|
96
|
+
rdoc_options: []
|
97
|
+
require_paths:
|
98
|
+
- lib
|
99
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
101
|
+
requirements:
|
102
|
+
- - ! '>='
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ! '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
requirements: []
|
112
|
+
rubyforge_project:
|
113
|
+
rubygems_version: 1.8.10
|
114
|
+
signing_key:
|
115
|
+
specification_version: 4
|
116
|
+
summary: Lookout-Rake provides Rake tasks for testing using Lookout.
|
117
|
+
test_files: []
|