`setup` and `teardown` do belong to the test-case so it doesn't make much sense to duplicate that logic in an individual test case. However I prefer to have global state modification / cleanup directly in the test methods. If the modification is necessary for multiple test-cases we can easily introduce a helper and don't necessarily need to move it into `setup` / `teardown` (See https://github.com/rails/rails/blob/master/activerecord/test/cases/adapters/postgresql/postgresql_adapter_test.rb#L327-L333 for example).

Probably not all tests need `min_cost = true` to run. Can we try to remove it from `setup` / `teardown` and have it explicitly in the tests that need it? Make sure to follow the git history when it was introduced to make sure we are not modifying the intent of the tests.