forked from voxpupuli/onceover
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
57 lines (45 loc) · 1.39 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
require 'rubygems/tasks'
require 'rspec/core/rake_task'
require 'cucumber/rake/task'
Gem::Tasks.new
def windows?
# Ruby only sets File::ALT_SEPARATOR on Windows and the Ruby standard
# library uses that to test what platform it's on.
!!File::ALT_SEPARATOR
end
RSpec::Core::RakeTask.new(:spec) do |t|
t.rspec_opts = '--pattern spec/onceover/**/*_spec.rb'
end
RSpec::Core::RakeTask.new(:acceptance) do |t|
t.rspec_opts = '--pattern spec/acceptance/**/*_spec.rb'
end
Cucumber::Rake::Task.new
task default: :full_tests
desc "Run unit tests"
task rspec_unit_tests: [:syntax, :rubocop, :spec]
desc "Run acceptance cucumber tests"
task cucumber_acceptance_tests: [:syntax, :rubocop, :fixtures, :cucumber]
desc "Run full set of tests"
task full_tests: [:rspec_unit_tests, :cucumber_acceptance_tests]
task :syntax do
paths = ['lib', 'spec/onceover', 'features']
require 'find'
Find.find(*paths) do |path|
next unless path =~ /\.rb$/
if windows?
sh "ruby -cw #{path} > NUL"
else
sh "ruby -cw #{path} > /dev/null"
end
end
end
task :rubocop do
require 'rubocop'
cli = RuboCop::CLI.new
exit_code = cli.run(%w(--display-cop-names --format simple))
raise "RuboCop detected offenses" if exit_code != 0
end
task :fixtures do
system 'git submodule init && git submodule update --recursive'
raise "Couldn't clone controlrepo to fixtures directory" unless $?.success?
end