Skip to content

Commit 71223ba

Browse files
committed
Fix "Test is missing assertions" is caught by Strict Warnings
``` $ RAILS_STRICT_WARNINGS=1 bin/test \ test/application/generators_test.rb \ test/application/initializers/frameworks_test.rb \ test/application/loading_test.rb \ test/application/rake/tmp_test.rb \ test/application/rake_test.rb Run options: --seed 7309 .............................Test is missing assertions: `test_tmp:clear_should_work_if_folder_missing` /home/zzak/code/rails/railties/test/application/rake/tmp_test.rb:41 E Error: ApplicationTests::RakeTests::TmpTest#test_tmp:clear_should_work_if_folder_missing: ActiveSupport::RaiseWarnings::WarningError: Test is missing assertions: `test_tmp:clear_should_work_if_folder_missing` /home/zzak/code/rails/railties/test/application/rake/tmp_test.rb:41 /home/zzak/code/rails/activesupport/lib/active_support/testing/strict_warnings.rb:38:in `warn' bin/test test/application/rake/tmp_test.rb:41 Test is missing assertions: `test_ARGV_is_populated` /home/zzak/code/rails/railties/test/application/generators_test.rb:180 E Error: ApplicationTests::GeneratorsTest#test_ARGV_is_populated: ActiveSupport::RaiseWarnings::WarningError: Test is missing assertions: `test_ARGV_is_populated` /home/zzak/code/rails/railties/test/application/generators_test.rb:180 /home/zzak/code/rails/activesupport/lib/active_support/testing/strict_warnings.rb:38:in `warn' bin/test test/application/generators_test.rb:180 ......Test is missing assertions: `test_can_boot_with_an_unhealthy_database` /home/zzak/code/rails/railties/test/application/initializers/frameworks_test.rb:219 E Error: ApplicationTests::FrameworksTest#test_can_boot_with_an_unhealthy_database: ActiveSupport::RaiseWarnings::WarningError: Test is missing assertions: `test_can_boot_with_an_unhealthy_database` /home/zzak/code/rails/railties/test/application/initializers/frameworks_test.rb:219 /home/zzak/code/rails/activesupport/lib/active_support/testing/strict_warnings.rb:38:in `warn' bin/test test/application/initializers/frameworks_test.rb:219 ...............................Test is missing assertions: `test_loading_only_yml_fixtures` /home/zzak/code/rails/railties/test/application/rake_test.rb:202 E Error: ApplicationTests::RakeTest#test_loading_only_yml_fixtures: ActiveSupport::RaiseWarnings::WarningError: Test is missing assertions: `test_loading_only_yml_fixtures` /home/zzak/code/rails/railties/test/application/rake_test.rb:202 /home/zzak/code/rails/activesupport/lib/active_support/testing/strict_warnings.rb:38:in `warn' bin/test test/application/rake_test.rb:202 ...Test is missing assertions: `test_models_without_table_do_not_panic_on_scope_definitions_when_loaded` /home/zzak/code/rails/railties/test/application/loading_test.rb:82 E Error: LoadingTest#test_models_without_table_do_not_panic_on_scope_definitions_when_loaded: ActiveSupport::RaiseWarnings::WarningError: Test is missing assertions: `test_models_without_table_do_not_panic_on_scope_definitions_when_loaded` /home/zzak/code/rails/railties/test/application/loading_test.rb:82 /home/zzak/code/rails/activesupport/lib/active_support/testing/strict_warnings.rb:38:in `warn' bin/test test/application/loading_test.rb:82 ``` This doesn't fail in CI because the warning is using a relative path: ``` Test is missing assertions: `test_tmp:clear_should_work_if_folder_missing` test/application/rake/tmp_test.rb:41 ``` Ref: https://buildkite.com/rails/rails/builds/113871#01933e25-4b3c-47f9-9b74-ea4ac84c6ae2/1292-1298 This can be reproduced locally like so: ``` RAILS_STRICT_WARNINGS=true ruby -w -Itest -Ilib -I../activesupport/lib -I../actionpack/lib -I../actionview/lib -I../activemodel/lib test/application/rake/tmp_test.rb /home/zzak/.rbenv/versions/3.3.6/lib/ruby/gems/3.3.0/gems/bundler-2.5.16/lib/bundler/rubygems_ext.rb:250: warning: method redefined; discarding old encode_with /home/zzak/.rbenv/versions/3.3.6/lib/ruby/3.3.0/rubygems/dependency.rb:341: warning: previous definition of encode_with was here Run options: --seed 35733 Test is missing assertions: `test_tmp:clear_should_work_if_folder_missing` /home/zzak/code/rails/railties/test/application/rake/tmp_test.rb:41 E. Finished in 0.118110s, 16.9334 runs/s, 33.8668 assertions/s. 1) Error: ApplicationTests::RakeTests::TmpTest#test_tmp:clear_should_work_if_folder_missing: ActiveSupport::RaiseWarnings::WarningError: Test is missing assertions: `test_tmp:clear_should_work_if_folder_missing` /home/zzak/code/rails/railties/test/application/rake/tmp_test.rb:41 /home/zzak/code/rails/activesupport/lib/active_support/testing/strict_warnings.rb:38:in `warn' 2 runs, 4 assertions, 0 failures, 1 errors, 0 skips ```
1 parent 2ca3cb0 commit 71223ba

File tree

6 files changed

+16
-6
lines changed

6 files changed

+16
-6
lines changed

activesupport/lib/active_support/testing/tests_without_assertions.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def after_teardown
1111

1212
if assertions.zero? && !skipped? && !error?
1313
file, line = method(name).source_location
14-
warn "Test is missing assertions: `#{name}` #{file}:#{line}"
14+
warn "Test is missing assertions: `#{name}` #{File.expand_path(file)}:#{line}"
1515
end
1616
end
1717
end

railties/test/application/generators_test.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,9 @@ def check_expected
188188
end
189189

190190
quietly do
191-
Rails::Command.invoke(:generate, ["check_argv", "expected"]) # should not raise
191+
assert_nothing_raised do
192+
Rails::Command.invoke(:generate, ["check_argv", "expected"]) # should not raise
193+
end
192194
end
193195
end
194196

railties/test/application/initializers/frameworks_test.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,9 @@ def show
220220
rails %w(generate model post title:string)
221221

222222
with_unhealthy_database do
223-
app("development")
223+
assert_nothing_raised do
224+
app("development")
225+
end
224226
end
225227
end
226228

railties/test/application/loading_test.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,9 @@ class User < ActiveRecord::Base
8989
require "#{rails_root}/config/environment"
9090
setup_ar!
9191

92-
User
92+
assert_nothing_raised do
93+
User
94+
end
9395
end
9496

9597
test "load config/environments/environment before Bootstrap initializers" do

railties/test/application/rake/tmp_test.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ def teardown
4040

4141
test "tmp:clear should work if folder missing" do
4242
FileUtils.remove_dir("#{app_path}/tmp")
43-
rails "tmp:clear"
43+
assert_nothing_raised do
44+
rails "tmp:clear"
45+
end
4446
end
4547
end
4648
end

railties/test/application/rake_test.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,9 @@ def test_loading_only_yml_fixtures
205205
app_file "test/fixtures/products.csv", ""
206206

207207
require "#{rails_root}/config/environment"
208-
rails "db:fixtures:load"
208+
assert_nothing_raised do
209+
rails "db:fixtures:load"
210+
end
209211
end
210212

211213
def test_scaffold_tests_pass_by_default

0 commit comments

Comments
 (0)