Be consistent in testing outputs from railties test and use /bin/rails everywhere(the default behaviour now) instead of mix of /bin/rake /bin/rails everywhere

[Ryo Hashimoto & Vipul A M]
This commit is contained in:
Vipul A M 2016-01-24 00:55:02 +05:30
parent 83d2c39d5e
commit e3b04447f4
9 changed files with 96 additions and 95 deletions

@ -44,7 +44,7 @@ def get(*)
test "assets are concatenated when debug is off and compile is off either if debug_assets param is provided" do
# config.assets.debug and config.assets.compile are false for production environment
ENV["RAILS_ENV"] = "production"
output = Dir.chdir(app_path){ `bin/rake assets:precompile --trace 2>&1` }
output = Dir.chdir(app_path){ `bin/rails assets:precompile --trace 2>&1` }
assert $?.success?, output
# Load app env

@ -19,7 +19,7 @@ def teardown
def precompile!(env = nil)
with_env env.to_h do
quietly do
precompile_task = "bin/rake assets:precompile --trace 2>&1"
precompile_task = "bin/rails assets:precompile --trace 2>&1"
output = Dir.chdir(app_path) { %x[ #{precompile_task} ] }
assert $?.success?, output
output
@ -36,7 +36,7 @@ def with_env(env)
def clean_assets!
quietly do
assert Dir.chdir(app_path) { system('bin/rake assets:clobber') }
assert Dir.chdir(app_path) { system('bin/rails assets:clobber') }
end
end

@ -216,7 +216,7 @@ def show
test "use schema cache dump" do
Dir.chdir(app_path) do
`rails generate model post title:string;
bin/rake db:migrate db:schema:cache:dump`
bin/rails db:migrate db:schema:cache:dump`
end
require "#{app_path}/config/environment"
ActiveRecord::Base.connection.drop_table("posts") # force drop posts table for test.
@ -226,7 +226,7 @@ def show
test "expire schema cache dump" do
Dir.chdir(app_path) do
`rails generate model post title:string;
bin/rake db:migrate db:schema:cache:dump db:rollback`
bin/rails db:migrate db:schema:cache:dump db:rollback`
end
silence_warnings {
require "#{app_path}/config/environment"

@ -28,11 +28,11 @@ def set_database_url
def db_create_and_drop(expected_database)
Dir.chdir(app_path) do
output = `bin/rake db:create`
output = `bin/rails db:create`
assert_empty output
assert File.exist?(expected_database)
assert_equal expected_database, ActiveRecord::Base.connection_config[:database]
output = `bin/rake db:drop`
output = `bin/rails db:drop`
assert_empty output
assert !File.exist?(expected_database)
end
@ -52,15 +52,15 @@ def db_create_and_drop(expected_database)
def with_database_existing
Dir.chdir(app_path) do
set_database_url
`bin/rake db:create`
`bin/rails db:create`
yield
`bin/rake db:drop`
`bin/rails db:drop`
end
end
test 'db:create failure because database exists' do
with_database_existing do
output = `bin/rake db:create 2>&1`
output = `bin/rails db:create 2>&1`
assert_match(/already exists/, output)
assert_equal 0, $?.exitstatus
end
@ -77,7 +77,7 @@ def with_bad_permissions
test 'db:create failure because bad permissions' do
with_bad_permissions do
output = `bin/rake db:create 2>&1`
output = `bin/rails db:create 2>&1`
assert_match(/Couldn't create database/, output)
assert_equal 1, $?.exitstatus
end
@ -85,7 +85,7 @@ def with_bad_permissions
test 'db:drop failure because database does not exist' do
Dir.chdir(app_path) do
output = `bin/rake db:drop:_unsafe --trace 2>&1`
output = `bin/rails db:drop:_unsafe --trace 2>&1`
assert_match(/does not exist/, output)
assert_equal 0, $?.exitstatus
end
@ -94,7 +94,7 @@ def with_bad_permissions
test 'db:drop failure because bad permissions' do
with_database_existing do
with_bad_permissions do
output = `bin/rake db:drop 2>&1`
output = `bin/rails db:drop 2>&1`
assert_match(/Couldn't drop/, output)
assert_equal 1, $?.exitstatus
end
@ -104,8 +104,8 @@ def with_bad_permissions
def db_migrate_and_status(expected_database)
Dir.chdir(app_path) do
`bin/rails generate model book title:string;
bin/rake db:migrate`
output = `bin/rake db:migrate:status`
bin/rails db:migrate`
output = `bin/rails db:migrate:status`
assert_match(%r{database:\s+\S*#{Regexp.escape(expected_database)}}, output)
assert_match(/up\s+\d{14}\s+Create books/, output)
end
@ -125,7 +125,7 @@ def db_migrate_and_status(expected_database)
def db_schema_dump
Dir.chdir(app_path) do
`bin/rails generate model book title:string;
bin/rake db:migrate db:schema:dump`
bin/rails db:migrate db:schema:dump`
schema_dump = File.read("db/schema.rb")
assert_match(/create_table \"books\"/, schema_dump)
end
@ -143,7 +143,7 @@ def db_schema_dump
def db_fixtures_load(expected_database)
Dir.chdir(app_path) do
`bin/rails generate model book title:string;
bin/rake db:migrate db:fixtures:load`
bin/rails db:migrate db:fixtures:load`
assert_match expected_database, ActiveRecord::Base.connection_config[:database]
require "#{app_path}/app/models/book"
assert_equal 2, Book.count
@ -165,7 +165,7 @@ def db_fixtures_load(expected_database)
require "#{app_path}/config/environment"
Dir.chdir(app_path) do
`bin/rails generate model admin::book title:string;
bin/rake db:migrate db:fixtures:load`
bin/rails db:migrate db:fixtures:load`
require "#{app_path}/app/models/admin/book"
assert_equal 2, Admin::Book.count
end
@ -174,10 +174,10 @@ def db_fixtures_load(expected_database)
def db_structure_dump_and_load(expected_database)
Dir.chdir(app_path) do
`bin/rails generate model book title:string;
bin/rake db:migrate db:structure:dump`
bin/rails db:migrate db:structure:dump`
structure_dump = File.read("db/structure.sql")
assert_match(/CREATE TABLE \"books\"/, structure_dump)
`bin/rake environment db:drop db:structure:load`
`bin/rails environment db:drop db:structure:load`
assert_match expected_database, ActiveRecord::Base.connection_config[:database]
require "#{app_path}/app/models/book"
#if structure is not loaded correctly, exception would be raised
@ -201,7 +201,7 @@ def db_structure_dump_and_load(expected_database)
# create table without migrations
`bin/rails runner 'ActiveRecord::Base.connection.create_table(:posts) {|t| t.string :title }'`
stderr_output = capture(:stderr) { `bin/rake db:structure:dump` }
stderr_output = capture(:stderr) { `bin/rails db:structure:dump` }
assert_empty stderr_output
structure_dump = File.read("db/structure.sql")
assert_match(/CREATE TABLE \"posts\"/, structure_dump)
@ -221,14 +221,14 @@ def db_structure_dump_and_load(expected_database)
list_tables = lambda { `bin/rails runner 'p ActiveRecord::Base.connection.tables'`.strip }
assert_equal '["posts"]', list_tables[]
`bin/rake db:schema:load`
`bin/rails db:schema:load`
assert_equal '["posts", "comments", "schema_migrations", "active_record_internal_metadatas"]', list_tables[]
app_file 'db/structure.sql', <<-SQL
CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255));
SQL
`bin/rake db:structure:load`
`bin/rails db:structure:load`
assert_equal '["posts", "comments", "schema_migrations", "active_record_internal_metadatas", "users"]', list_tables[]
end
end
@ -251,7 +251,7 @@ def db_structure_dump_and_load(expected_database)
end
RUBY
`bin/rake db:schema:load`
`bin/rails db:schema:load`
tables = `bin/rails runner 'p ActiveRecord::Base.connection.tables'`.strip
assert_match(/"geese"/, tables)
@ -264,7 +264,7 @@ def db_structure_dump_and_load(expected_database)
def db_test_load_structure
Dir.chdir(app_path) do
`bin/rails generate model book title:string;
bin/rake db:migrate db:structure:dump db:test:load_structure`
bin/rails db:migrate db:structure:dump db:test:load_structure`
ActiveRecord::Base.configurations = Rails.application.config.database_configuration
ActiveRecord::Base.establish_connection :test
require "#{app_path}/app/models/book"
@ -300,7 +300,7 @@ def db_test_load_structure
RUBY
Dir.chdir(app_path) do
database_path = `bin/rake db:setup`
database_path = `bin/rails db:setup`
assert_equal "development.sqlite3", File.basename(database_path.strip)
end
ensure

@ -22,14 +22,14 @@ class AMigration < ActiveRecord::Migration::Current
end
MIGRATION
output = `bin/rake db:migrate SCOPE=bukkits`
output = `bin/rails db:migrate SCOPE=bukkits`
assert_no_match(/create_table\(:users\)/, output)
assert_no_match(/CreateUsers/, output)
assert_no_match(/add_column\(:users, :email, :string\)/, output)
assert_match(/AMigration: migrated/, output)
output = `bin/rake db:migrate SCOPE=bukkits VERSION=0`
output = `bin/rails db:migrate SCOPE=bukkits VERSION=0`
assert_no_match(/drop_table\(:users\)/, output)
assert_no_match(/CreateUsers/, output)
assert_no_match(/remove_column\(:users, :email\)/, output)
@ -43,13 +43,13 @@ class AMigration < ActiveRecord::Migration::Current
`bin/rails generate model user username:string password:string;
bin/rails generate migration add_email_to_users email:string`
output = `bin/rake db:migrate`
output = `bin/rails db:migrate`
assert_match(/create_table\(:users\)/, output)
assert_match(/CreateUsers: migrated/, output)
assert_match(/add_column\(:users, :email, :string\)/, output)
assert_match(/AddEmailToUsers: migrated/, output)
output = `bin/rake db:rollback STEP=2`
output = `bin/rails db:rollback STEP=2`
assert_match(/drop_table\(:users\)/, output)
assert_match(/CreateUsers: reverted/, output)
assert_match(/remove_column\(:users, :email, :string\)/, output)
@ -58,7 +58,7 @@ class AMigration < ActiveRecord::Migration::Current
end
test 'migration status when schema migrations table is not present' do
output = Dir.chdir(app_path){ `bin/rake db:migrate:status 2>&1` }
output = Dir.chdir(app_path){ `bin/rails db:migrate:status 2>&1` }
assert_equal "Schema migrations table does not exist yet.\n", output
end
@ -66,15 +66,15 @@ class AMigration < ActiveRecord::Migration::Current
Dir.chdir(app_path) do
`bin/rails generate model user username:string password:string;
bin/rails generate migration add_email_to_users email:string;
bin/rake db:migrate`
bin/rails db:migrate`
output = `bin/rake db:migrate:status`
output = `bin/rails db:migrate:status`
assert_match(/up\s+\d{14}\s+Create users/, output)
assert_match(/up\s+\d{14}\s+Add email to users/, output)
`bin/rake db:rollback STEP=1`
output = `bin/rake db:migrate:status`
`bin/rails db:rollback STEP=1`
output = `bin/rails db:migrate:status`
assert_match(/up\s+\d{14}\s+Create users/, output)
assert_match(/down\s+\d{14}\s+Add email to users/, output)
@ -87,15 +87,15 @@ class AMigration < ActiveRecord::Migration::Current
Dir.chdir(app_path) do
`bin/rails generate model user username:string password:string;
bin/rails generate migration add_email_to_users email:string;
bin/rake db:migrate`
bin/rails db:migrate`
output = `bin/rake db:migrate:status`
output = `bin/rails db:migrate:status`
assert_match(/up\s+\d{3,}\s+Create users/, output)
assert_match(/up\s+\d{3,}\s+Add email to users/, output)
`bin/rake db:rollback STEP=1`
output = `bin/rake db:migrate:status`
`bin/rails db:rollback STEP=1`
output = `bin/rails db:migrate:status`
assert_match(/up\s+\d{3,}\s+Create users/, output)
assert_match(/down\s+\d{3,}\s+Add email to users/, output)
@ -106,21 +106,21 @@ class AMigration < ActiveRecord::Migration::Current
Dir.chdir(app_path) do
`bin/rails generate model user username:string password:string;
bin/rails generate migration add_email_to_users email:string;
bin/rake db:migrate`
bin/rails db:migrate`
output = `bin/rake db:migrate:status`
output = `bin/rails db:migrate:status`
assert_match(/up\s+\d{14}\s+Create users/, output)
assert_match(/up\s+\d{14}\s+Add email to users/, output)
`bin/rake db:rollback STEP=2`
output = `bin/rake db:migrate:status`
`bin/rails db:rollback STEP=2`
output = `bin/rails db:migrate:status`
assert_match(/down\s+\d{14}\s+Create users/, output)
assert_match(/down\s+\d{14}\s+Add email to users/, output)
`bin/rake db:migrate:redo`
output = `bin/rake db:migrate:status`
`bin/rails db:migrate:redo`
output = `bin/rails db:migrate:status`
assert_match(/up\s+\d{14}\s+Create users/, output)
assert_match(/up\s+\d{14}\s+Add email to users/, output)
@ -133,21 +133,21 @@ class AMigration < ActiveRecord::Migration::Current
Dir.chdir(app_path) do
`bin/rails generate model user username:string password:string;
bin/rails generate migration add_email_to_users email:string;
bin/rake db:migrate`
bin/rails db:migrate`
output = `bin/rake db:migrate:status`
output = `bin/rails db:migrate:status`
assert_match(/up\s+\d{3,}\s+Create users/, output)
assert_match(/up\s+\d{3,}\s+Add email to users/, output)
`bin/rake db:rollback STEP=2`
output = `bin/rake db:migrate:status`
`bin/rails db:rollback STEP=2`
output = `bin/rails db:migrate:status`
assert_match(/down\s+\d{3,}\s+Create users/, output)
assert_match(/down\s+\d{3,}\s+Add email to users/, output)
`bin/rake db:migrate:redo`
output = `bin/rake db:migrate:status`
`bin/rails db:migrate:redo`
output = `bin/rails db:migrate:status`
assert_match(/up\s+\d{3,}\s+Create users/, output)
assert_match(/up\s+\d{3,}\s+Add email to users/, output)
@ -167,9 +167,9 @@ class TwoMigration < ActiveRecord::Migration::Current
end
MIGRATION
`bin/rake db:migrate`
`bin/rails db:migrate`
output = `bin/rake db:migrate:status`
output = `bin/rails db:migrate:status`
assert_match(/up\s+001\s+One migration/, output)
assert_match(/up\s+002\s+Two migration/, output)
@ -184,7 +184,7 @@ class TwoMigration < ActiveRecord::Migration::Current
output = `bin/rails generate model author name:string`
version = output =~ %r{[^/]+db/migrate/(\d+)_create_authors\.rb} && $1
`bin/rake db:migrate db:rollback db:forward db:migrate:up db:migrate:down VERSION=#{version}`
`bin/rails db:migrate db:rollback db:forward db:migrate:up db:migrate:down VERSION=#{version}`
assert !File.exist?("db/schema.rb"), "should not dump schema when configured not to"
end
@ -192,7 +192,7 @@ class TwoMigration < ActiveRecord::Migration::Current
Dir.chdir(app_path) do
`bin/rails generate model reviews book_id:integer`
`bin/rake db:migrate`
`bin/rails db:migrate`
structure_dump = File.read("db/schema.rb")
assert_match(/create_table "reviews"/, structure_dump)
@ -202,7 +202,7 @@ class TwoMigration < ActiveRecord::Migration::Current
test 'default schema generation after migration' do
Dir.chdir(app_path) do
`bin/rails generate model book title:string;
bin/rake db:migrate`
bin/rails db:migrate`
structure_dump = File.read("db/schema.rb")
assert_match(/create_table "books"/, structure_dump)
@ -213,10 +213,10 @@ class TwoMigration < ActiveRecord::Migration::Current
Dir.chdir(app_path) do
`bin/rails generate model user username:string password:string;
bin/rails generate migration add_email_to_users email:string;
bin/rake db:migrate
bin/rails db:migrate
rm db/migrate/*email*.rb`
output = `bin/rake db:migrate:status`
output = `bin/rails db:migrate:status`
File.write('test.txt', output)
assert_match(/up\s+\d{14}\s+Create users/, output)

@ -74,7 +74,7 @@ def teardown
app_file "some_other_dir/blah.rb", "# TODO: note in some_other directory"
run_rake_notes "SOURCE_ANNOTATION_DIRECTORIES='some_other_dir' bin/rake notes" do |output, lines|
run_rake_notes "SOURCE_ANNOTATION_DIRECTORIES='some_other_dir' bin/rails notes" do |output, lines|
assert_match(/note in app directory/, output)
assert_match(/note in config directory/, output)
assert_match(/note in db directory/, output)
@ -102,7 +102,7 @@ def teardown
end
EOS
run_rake_notes "bin/rake notes_custom" do |output, lines|
run_rake_notes "bin/rails notes_custom" do |output, lines|
assert_match(/\[FIXME\] note in lib directory/, output)
assert_match(/\[TODO\] note in test directory/, output)
assert_no_match(/OPTIMIZE/, output)
@ -128,7 +128,7 @@ def teardown
private
def run_rake_notes(command = 'bin/rake notes')
def run_rake_notes(command = 'bin/rails notes')
boot_rails
load_tasks

@ -27,8 +27,8 @@ def test_gems_tasks_are_loaded_first_than_application_ones
def test_the_test_rake_task_is_protected_when_previous_migration_was_production
Dir.chdir(app_path) do
output = `bin/rails generate model product name:string;
env RAILS_ENV=production bin/rake db:create db:migrate;
env RAILS_ENV=production bin/rake db:test:prepare test 2>&1`
env RAILS_ENV=production bin/rails db:create db:migrate;
env RAILS_ENV=production bin/rails db:test:prepare test 2>&1`
assert_match(/ActiveRecord::ProtectedEnvironmentError/, output)
end
@ -37,8 +37,8 @@ def test_the_test_rake_task_is_protected_when_previous_migration_was_production
def test_not_protected_when_previous_migration_was_not_production
Dir.chdir(app_path) do
output = `bin/rails generate model product name:string;
env RAILS_ENV=test bin/rake db:create db:migrate;
env RAILS_ENV=test bin/rake db:test:prepare test 2>&1`
env RAILS_ENV=test bin/rails db:create db:migrate;
env RAILS_ENV=test bin/rails db:test:prepare test 2>&1`
refute_match(/ActiveRecord::ProtectedEnvironmentError/, output)
end
@ -55,7 +55,7 @@ def test_environment_is_required_in_rake_tasks
Rails.application.initialize!
RUBY
assert_match("SuperMiddleware", Dir.chdir(app_path){ `bin/rake middleware` })
assert_match("SuperMiddleware", Dir.chdir(app_path){ `bin/rails middleware` })
end
def test_initializers_are_executed_in_rake_tasks
@ -70,7 +70,7 @@ def test_initializers_are_executed_in_rake_tasks
end
RUBY
output = Dir.chdir(app_path){ `bin/rake do_nothing` }
output = Dir.chdir(app_path){ `bin/rails do_nothing` }
assert_match "Doing something...", output
end
@ -91,7 +91,7 @@ def world
end
RUBY
output = Dir.chdir(app_path) { `bin/rake do_nothing` }
output = Dir.chdir(app_path) { `bin/rails do_nothing` }
assert_match 'Hello world', output
end
@ -112,14 +112,14 @@ def test_should_not_eager_load_model_for_rake
RUBY
Dir.chdir(app_path) do
assert system('bin/rake do_nothing RAILS_ENV=production'),
assert system('bin/rails do_nothing RAILS_ENV=production'),
'should not be pre-required for rake even eager_load=true'
end
end
def test_code_statistics_sanity
assert_match "Code LOC: 14 Test LOC: 0 Code to Test Ratio: 1:0.0",
Dir.chdir(app_path){ `bin/rake stats` }
Dir.chdir(app_path){ `bin/rails stats` }
end
def test_rake_routes_calls_the_route_inspector
@ -129,7 +129,7 @@ def test_rake_routes_calls_the_route_inspector
end
RUBY
output = Dir.chdir(app_path){ `bin/rake routes` }
output = Dir.chdir(app_path){ `bin/rails routes` }
assert_equal "Prefix Verb URI Pattern Controller#Action\n cart GET /cart(.:format) cart#show\n", output
end
@ -142,7 +142,7 @@ def test_rake_routes_with_controller_environment
RUBY
ENV['CONTROLLER'] = 'cart'
output = Dir.chdir(app_path){ `bin/rake routes` }
output = Dir.chdir(app_path){ `bin/rails routes` }
assert_equal "Prefix Verb URI Pattern Controller#Action\n cart GET /cart(.:format) cart#show\n", output
end
@ -152,7 +152,7 @@ def test_rake_routes_displays_message_when_no_routes_are_defined
end
RUBY
assert_equal <<-MESSAGE.strip_heredoc, Dir.chdir(app_path){ `bin/rake routes` }
assert_equal <<-MESSAGE.strip_heredoc, Dir.chdir(app_path){ `bin/rails routes` }
You don't have any routes defined!
Please add some routes in config/routes.rb.
@ -170,7 +170,7 @@ def test_logger_is_flushed_when_exiting_production_rake_tasks
end
RUBY
output = Dir.chdir(app_path){ `bin/rake log_something RAILS_ENV=production && cat log/production.log` }
output = Dir.chdir(app_path){ `bin/rails log_something RAILS_ENV=production && cat log/production.log` }
assert_match "Sample log message", output
end
@ -178,13 +178,13 @@ def test_loading_specific_fixtures
Dir.chdir(app_path) do
`bin/rails generate model user username:string password:string;
bin/rails generate model product name:string;
bin/rake db:migrate`
bin/rails db:migrate`
end
require "#{rails_root}/config/environment"
# loading a specific fixture
errormsg = Dir.chdir(app_path) { `bin/rake db:fixtures:load FIXTURES=products` }
errormsg = Dir.chdir(app_path) { `bin/rails db:fixtures:load FIXTURES=products` }
assert $?.success?, errormsg
assert_equal 2, ::AppTemplate::Application::Product.count
@ -193,20 +193,20 @@ def test_loading_specific_fixtures
def test_loading_only_yml_fixtures
Dir.chdir(app_path) do
`bin/rake db:migrate`
`bin/rails db:migrate`
end
app_file "test/fixtures/products.csv", ""
require "#{rails_root}/config/environment"
errormsg = Dir.chdir(app_path) { `bin/rake db:fixtures:load` }
errormsg = Dir.chdir(app_path) { `bin/rails db:fixtures:load` }
assert $?.success?, errormsg
end
def test_scaffold_tests_pass_by_default
output = Dir.chdir(app_path) do
`bin/rails generate scaffold user username:string password:string;
RAILS_ENV=test bin/rake db:migrate test`
RAILS_ENV=test bin/rails db:migrate test`
end
assert_match(/7 runs, 12 assertions, 0 failures, 0 errors/, output)
@ -225,7 +225,7 @@ class ApplicationController < ActionController::API
output = Dir.chdir(app_path) do
`bin/rails generate scaffold user username:string password:string;
RAILS_ENV=test bin/rake db:migrate test`
RAILS_ENV=test bin/rails db:migrate test`
end
assert_match(/5 runs, 7 assertions, 0 failures, 0 errors/, output)
@ -238,7 +238,7 @@ def test_scaffold_with_references_columns_tests_pass_when_belongs_to_is_optional
output = Dir.chdir(app_path) do
`bin/rails generate scaffold LineItems product:references cart:belongs_to;
RAILS_ENV=test bin/rake db:migrate test`
RAILS_ENV=test bin/rails db:migrate test`
end
assert_match(/7 runs, 12 assertions, 0 failures, 0 errors/, output)
@ -249,8 +249,8 @@ def test_db_test_clone_when_using_sql_format
add_to_config "config.active_record.schema_format = :sql"
output = Dir.chdir(app_path) do
`bin/rails generate scaffold user username:string;
bin/rake db:migrate;
bin/rake db:test:clone 2>&1 --trace`
bin/rails db:migrate;
bin/rails db:test:clone 2>&1 --trace`
end
assert_match(/Execute db:test:clone_structure/, output)
end
@ -259,8 +259,8 @@ def test_db_test_prepare_when_using_sql_format
add_to_config "config.active_record.schema_format = :sql"
output = Dir.chdir(app_path) do
`bin/rails generate scaffold user username:string;
bin/rake db:migrate;
bin/rake db:test:prepare 2>&1 --trace`
bin/rails db:migrate;
bin/rails db:test:prepare 2>&1 --trace`
end
assert_match(/Execute db:test:load_structure/, output)
end
@ -268,7 +268,7 @@ def test_db_test_prepare_when_using_sql_format
def test_rake_dump_structure_should_respect_db_structure_env_variable
Dir.chdir(app_path) do
# ensure we have a schema_migrations table to dump
`bin/rake db:migrate db:structure:dump SCHEMA=db/my_structure.sql`
`bin/rails db:migrate db:structure:dump SCHEMA=db/my_structure.sql`
end
assert File.exist?(File.join(app_path, 'db', 'my_structure.sql'))
end
@ -278,7 +278,7 @@ def test_rake_dump_structure_should_be_called_twice_when_migrate_redo
output = Dir.chdir(app_path) do
`bin/rails g model post title:string;
bin/rake db:migrate:redo 2>&1 --trace;`
bin/rails db:migrate:redo 2>&1 --trace;`
end
# expect only Invoke db:structure:dump (first_time)
@ -289,21 +289,21 @@ def test_rake_dump_schema_cache
Dir.chdir(app_path) do
`bin/rails generate model post title:string;
bin/rails generate model product name:string;
bin/rake db:migrate db:schema:cache:dump`
bin/rails db:migrate db:schema:cache:dump`
end
assert File.exist?(File.join(app_path, 'db', 'schema_cache.dump'))
end
def test_rake_clear_schema_cache
Dir.chdir(app_path) do
`bin/rake db:schema:cache:dump db:schema:cache:clear`
`bin/rails db:schema:cache:dump db:schema:cache:clear`
end
assert !File.exist?(File.join(app_path, 'db', 'schema_cache.dump'))
end
def test_copy_templates
Dir.chdir(app_path) do
`bin/rake rails:templates:copy`
`bin/rails rails:templates:copy`
%w(controller mailer scaffold).each do |dir|
assert File.exist?(File.join(app_path, 'lib', 'templates', 'erb', dir))
end
@ -318,7 +318,7 @@ def test_template_load_initializers
app_file "template.rb", ""
output = Dir.chdir(app_path) do
`bin/rake rails:template LOCATION=template.rb`
`bin/rails rails:template LOCATION=template.rb`
end
assert_match(/Hello, World!/, output)
@ -326,7 +326,7 @@ def test_template_load_initializers
def test_tmp_clear_should_work_if_folder_missing
FileUtils.remove_dir("#{app_path}/tmp")
errormsg = Dir.chdir(app_path) { `bin/rake tmp:clear` }
errormsg = Dir.chdir(app_path) { `bin/rails tmp:clear` }
assert_predicate $?, :success?
assert_empty errormsg
end

@ -445,7 +445,8 @@ def test_raise_error_when_specified_file_does_not_exist
def test_pass_TEST_env_on_rake_test
create_test_file :models, 'account'
create_test_file :models, 'post', pass: false
# This specifically verifies TEST for backwards compatibility with rake test
# as bin/rails test already supports running tests from a single file more cleanly.
output = Dir.chdir(app_path) { `bin/rake test TEST=test/models/post_test.rb` }
assert_match "PostTest", output, "passing TEST= should run selected test"
@ -540,7 +541,7 @@ def create_controller
end
def run_migration
Dir.chdir(app_path) { `bin/rake db:migrate` }
Dir.chdir(app_path) { `bin/rails db:migrate` }
end
end
end

@ -232,7 +232,7 @@ class UserTest < ActiveSupport::TestCase
assert_successful_test_run "models/user_test.rb"
Dir.chdir(app_path) { `bin/rake db:test:prepare` }
Dir.chdir(app_path) { `bin/rails db:test:prepare` }
assert_unsuccessful_run "models/user_test.rb", <<-ASSERTION
Expected: ["id", "name"]