diff options
author | Matthew Draper <matthew@trebex.net> | 2019-02-06 01:20:06 +1030 |
---|---|---|
committer | Matthew Draper <matthew@trebex.net> | 2019-02-06 01:20:06 +1030 |
commit | 287920ca7d06c8f51198ec750d65ba703835b257 (patch) | |
tree | fa38811f965fa873d02bc7df3317583ada076ff1 /railties | |
parent | 44232b485485634d681c60868c619323f882e59f (diff) | |
download | rails-287920ca7d06c8f51198ec750d65ba703835b257.tar.gz rails-287920ca7d06c8f51198ec750d65ba703835b257.tar.bz2 rails-287920ca7d06c8f51198ec750d65ba703835b257.zip |
Respect ENV variables when finding DBs etc for the test suite
If they're not set we'll still fall back to localhost, but this makes it
possible to run the tests against a remote Postgres / Redis / whatever.
Diffstat (limited to 'railties')
-rw-r--r-- | railties/Rakefile | 21 | ||||
-rw-r--r-- | railties/test/application/rake/dbs_test.rb | 2 | ||||
-rw-r--r-- | railties/test/application/server_test.rb | 22 | ||||
-rw-r--r-- | railties/test/application/url_generation_test.rb | 1 |
4 files changed, 32 insertions, 14 deletions
diff --git a/railties/Rakefile b/railties/Rakefile index 445f6217b3..1c4725e2d6 100644 --- a/railties/Rakefile +++ b/railties/Rakefile @@ -36,10 +36,20 @@ namespace :test do dirs = (ENV["TEST_DIR"] || ENV["TEST_DIRS"] || "**").split(",") test_options = ENV["TESTOPTS"].to_s.split(/[\s]+/) - test_files = dirs.map { |dir| "test/#{dir}/*_test.rb" } - Dir[*test_files].each do |file| - next true if file.start_with?("test/fixtures/") + test_patterns = dirs.map { |dir| "test/#{dir}/*_test.rb" } + test_files = Dir[*test_patterns].select do |file| + !file.start_with?("test/fixtures/") + end.sort + if ENV["BUILDKITE_PARALLEL_JOB_COUNT"] + n = ENV["BUILDKITE_PARALLEL_JOB"].to_i + m = ENV["BUILDKITE_PARALLEL_JOB_COUNT"].to_i + + test_files = test_files.each_slice(m).map { |slice| slice[n] }.compact + end + + test_files.each do |file| + puts "--- #{file}" fake_command = Shellwords.join([ FileUtils::RUBY, "-w", @@ -59,10 +69,13 @@ namespace :test do unless $?.success? failing_files << file + puts "^^^ +++" end end + puts "--- All tests completed" unless failing_files.empty? + puts "^^^ +++" puts puts "Failed in:" failing_files.each do |file| @@ -70,7 +83,7 @@ namespace :test do end puts - raise "Failure in isolated test runner" + exit 1 end end end diff --git a/railties/test/application/rake/dbs_test.rb b/railties/test/application/rake/dbs_test.rb index 84ac2f057e..5879949b61 100644 --- a/railties/test/application/rake/dbs_test.rb +++ b/railties/test/application/rake/dbs_test.rb @@ -93,6 +93,8 @@ module ApplicationTests def with_bad_permissions Dir.chdir(app_path) do + skip "Can't avoid permissions as root" if Process.uid.zero? + set_database_url FileUtils.chmod("-w", "db") yield diff --git a/railties/test/application/server_test.rb b/railties/test/application/server_test.rb index f4bd09903a..5b8aab08d5 100644 --- a/railties/test/application/server_test.rb +++ b/railties/test/application/server_test.rb @@ -29,16 +29,18 @@ module ApplicationTests primary, replica = PTY.open pid = nil - begin - pid = Process.spawn("#{app_path}/bin/rails server -P tmp/dummy.pid", in: replica, out: replica, err: replica) - assert_output("Listening", primary) - - rails("restart") - - assert_output("Restarting", primary) - assert_output("Inherited", primary) - ensure - kill(pid) if pid + Bundler.with_original_env do + begin + pid = Process.spawn("bin/rails server -P tmp/dummy.pid", chdir: app_path, in: replica, out: replica, err: replica) + assert_output("Listening", primary) + + rails("restart") + + assert_output("Restarting", primary) + assert_output("Inherited", primary) + ensure + kill(pid) if pid + end end end diff --git a/railties/test/application/url_generation_test.rb b/railties/test/application/url_generation_test.rb index f22b9fda3d..6bcc0b0acb 100644 --- a/railties/test/application/url_generation_test.rb +++ b/railties/test/application/url_generation_test.rb @@ -19,6 +19,7 @@ module ApplicationTests config.session_store :cookie_store, key: "_myapp_session" config.active_support.deprecation = :log config.eager_load = false + config.hosts << proc { true } end Rails.application.initialize! |