blob: 00ab92129d27e96935431463de089ccca30e31a7 (
plain) (
tree)
|
|
require "rake/testtask"
require "fileutils"
desc "Default Task"
task default: :test
task package: "assets:compile"
# Run the unit tests
desc "Run all unit tests"
task test: ["test:template", "test:integration:action_pack", "test:integration:active_record"]
namespace :test do
task :isolated do
Dir.glob("test/{actionpack,activerecord,template}/**/*_test.rb").all? do |file|
sh(Gem.ruby, "-w", "-Ilib:test", file)
end || raise("Failures")
end
Rake::TestTask.new(:template) do |t|
t.libs << "test"
t.test_files = Dir.glob("test/template/**/*_test.rb")
t.warning = true
t.verbose = true
t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
end
task :ujs do
begin
Dir.mkdir("log")
pid = spawn("bundle exec rackup test/ujs/config.ru -p 4567 -s puma > log/test.log 2>&1")
start_time = Time.now
loop do
break if system("lsof -i :4567 >/dev/null")
if Time.now - start_time > 5
puts "Timed out after 5 seconds"
exit 1
end
end
system("npm run lint && phantomjs ../ci/phantomjs.js http://localhost:4567/")
status = $?.to_i
ensure
Process.kill("KILL", pid) if pid
FileUtils.rm_f("log")
end
exit status
end
namespace :integration do
desc "ActiveRecord Integration Tests"
Rake::TestTask.new(:active_record) do |t|
t.libs << "test"
t.test_files = Dir.glob("test/activerecord/*_test.rb")
t.warning = true
t.verbose = true
t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
end
desc "ActionPack Integration Tests"
Rake::TestTask.new(:action_pack) do |t|
t.libs << "test"
t.test_files = Dir.glob("test/actionpack/**/*_test.rb")
t.warning = true
t.verbose = true
t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
end
end
end
namespace :ujs do
desc "Starts the test server"
task :server do
system "bundle exec rackup test/ujs/config.ru -p 4567 -s puma"
end
end
namespace :assets do
desc "Compile Action View assets"
task :compile do
require "blade"
Blade.build
end
end
task :lines do
load File.expand_path("..", File.dirname(__FILE__)) + "/tools/line_statistics"
files = FileList["lib/**/*.rb"]
CodeTools::LineStatistics.new(files).print_loc
end
|