2016-08-06 17:28:46 +00:00
|
|
|
require "rake/testtask"
|
2017-02-21 18:41:17 +00:00
|
|
|
require "fileutils"
|
2013-04-16 22:06:11 +00:00
|
|
|
|
|
|
|
desc "Default Task"
|
2016-08-06 17:36:34 +00:00
|
|
|
task default: :test
|
2013-04-16 22:06:11 +00:00
|
|
|
|
2016-11-26 13:58:55 +00:00
|
|
|
task package: "assets:compile"
|
2016-01-31 18:01:03 +00:00
|
|
|
|
2013-04-16 22:06:11 +00:00
|
|
|
# Run the unit tests
|
|
|
|
|
|
|
|
desc "Run all unit tests"
|
2016-08-06 17:36:34 +00:00
|
|
|
task test: ["test:template", "test:integration:action_pack", "test:integration:active_record"]
|
2013-04-16 22:06:11 +00:00
|
|
|
|
|
|
|
namespace :test do
|
2013-06-20 16:24:50 +00:00
|
|
|
task :isolated do
|
2013-10-02 21:57:58 +00:00
|
|
|
Dir.glob("test/{actionpack,activerecord,template}/**/*_test.rb").all? do |file|
|
2016-08-06 17:28:46 +00:00
|
|
|
sh(Gem.ruby, "-w", "-Ilib:test", file)
|
2016-09-01 21:41:49 +00:00
|
|
|
end || raise("Failures")
|
2013-04-16 22:06:11 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
Rake::TestTask.new(:template) do |t|
|
2016-08-06 17:28:46 +00:00
|
|
|
t.libs << "test"
|
|
|
|
t.test_files = Dir.glob("test/template/**/*_test.rb")
|
2013-08-05 22:43:32 +00:00
|
|
|
t.warning = true
|
|
|
|
t.verbose = true
|
2014-09-27 14:37:44 +00:00
|
|
|
t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
|
2013-04-16 22:06:11 +00:00
|
|
|
end
|
|
|
|
|
2017-02-21 18:41:17 +00:00
|
|
|
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
|
|
|
|
|
2013-08-05 22:43:32 +00:00
|
|
|
namespace :integration do
|
2016-08-06 17:28:46 +00:00
|
|
|
desc "ActiveRecord Integration Tests"
|
2013-08-05 22:43:32 +00:00
|
|
|
Rake::TestTask.new(:active_record) do |t|
|
2016-08-06 17:28:46 +00:00
|
|
|
t.libs << "test"
|
2013-08-05 22:43:32 +00:00
|
|
|
t.test_files = Dir.glob("test/activerecord/*_test.rb")
|
|
|
|
t.warning = true
|
|
|
|
t.verbose = true
|
2014-09-27 14:37:44 +00:00
|
|
|
t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
|
2013-08-05 22:43:32 +00:00
|
|
|
end
|
2013-08-05 22:47:49 +00:00
|
|
|
|
2016-08-06 17:28:46 +00:00
|
|
|
desc "ActionPack Integration Tests"
|
2013-08-05 22:47:49 +00:00
|
|
|
Rake::TestTask.new(:action_pack) do |t|
|
2016-08-06 17:28:46 +00:00
|
|
|
t.libs << "test"
|
2013-08-13 20:28:51 +00:00
|
|
|
t.test_files = Dir.glob("test/actionpack/**/*_test.rb")
|
2013-08-05 22:47:49 +00:00
|
|
|
t.warning = true
|
|
|
|
t.verbose = true
|
2014-09-27 14:37:44 +00:00
|
|
|
t.ruby_opts = ["--dev"] if defined?(JRUBY_VERSION)
|
2013-08-05 22:47:49 +00:00
|
|
|
end
|
2013-08-05 22:43:32 +00:00
|
|
|
end
|
2013-04-16 22:06:11 +00:00
|
|
|
end
|
|
|
|
|
2016-11-26 04:42:29 +00:00
|
|
|
namespace :ujs do
|
|
|
|
desc "Starts the test server"
|
|
|
|
task :server do
|
2016-12-29 02:53:51 +00:00
|
|
|
system "bundle exec rackup test/ujs/config.ru -p 4567 -s puma"
|
2016-11-26 04:42:29 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2016-11-26 13:58:55 +00:00
|
|
|
namespace :assets do
|
|
|
|
desc "Compile Action View assets"
|
|
|
|
task :compile do
|
|
|
|
require "blade"
|
|
|
|
Blade.build
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2013-04-16 22:06:11 +00:00
|
|
|
task :lines do
|
2016-08-06 17:28:46 +00:00
|
|
|
load File.expand_path("..", File.dirname(__FILE__)) + "/tools/line_statistics"
|
2015-05-22 12:37:02 +00:00
|
|
|
files = FileList["lib/**/*.rb"]
|
|
|
|
CodeTools::LineStatistics.new(files).print_loc
|
2013-04-16 22:06:11 +00:00
|
|
|
end
|