| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Replaces the rake_patterns instance variable with simple require, as
`autorun` will run tests from all eagerly required test files.
Fixes #27801
|
| |
|
|
|
|
|
|
|
| |
Makes sure we get support for `Minitest.after_run` hooks and don't
accidentally run tests twice.
Requires overriding minitest `run` to respect the TESTOPTS variable.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Rails test runner supports three ways to run tests: directly, via rake, or ruby.
When Running with Ruby ala `ruby -Itest test/models/post_test.rb` our test file would
be evaluated first, requiring `test_helper` and then `active_support/testing/autorun`
that would then require the test file (which it hadn't been before) thus reevaluating
it. This caused exceptions if using Active Support's declarative syntax.
Fix this by shifting around when we set the how we're run to closer mimick the require
order.
If we're running with `bin/rails test` the test command file is run first and we then
set `run_with_rails_extension`, later we hit `active_support/testing/autorun` and do
nothing — because we've been run elsewhere.
If we at this point haven't set `run_with_rails_extension` we've been running with
`ruby` this whole time and thus we set that.
We should always trigger `Minitest.autorun` as it doesn't hurt to call it twice.
Consolidate the two methods into a single one that better brings out the intent of
why they're there.
|
|
|
|
|
| |
The current code base is not uniform. After some discussion,
we have chosen to go with double quotes by default.
|
|
|
|
|
|
|
| |
If run the test over the `rake` command, because of the test patterns is passed
via `rake_run` method, do not need to be obtained from the argv.
This probably fixes #24372.
|
|
|
|
|
| |
Didn't feel we were clear enough about our motivation for placing Rails first
and why we needed to call `load_plugins`.
|
|
|
|
| |
The useless explicit self calls were driving me nuts.
|
|
|
|
|
|
|
|
|
|
|
| |
When calling `load_plugins` minitest would fill out its extensions, then
we'd tackle ourselves on as the last plugin. Because minitest loads plugins
in order we will ultimately have the last say on what reporters will be used.
Invert that strategy by putting ourselves first and give other plugins plenty
of leeway to override our default reporter setup.
Fixes #24179.
|
|
|
|
|
| |
We should be able to pass options to minitest via TESTOPTS environment
variable
|
|
|
|
| |
Get it? ( ͡° ͜ʖ ͡°)
|
| |
|
|
|
|
|
| |
Reporter that defines its own users at the time of this process are also loaded,
to avoid them from being deleted, to delete only the specified to unnecessary reporter.
|
|
|
|
|
|
|
|
| |
I should have replaced the summary reporter with a subclass
the first time I wrote this.
For whatever reason, I didn't. Do it right and slim the methods added
to Minitest in the process.
|
|
|
|
|
|
| |
Minitest by default includes a summary reporter and a progress reporter.
To print colored output, we have to replace the progress reporter.
|
| |
|
|
|
|
|
|
|
| |
The exit status code was not set when tests were fired with `rake`.
Now, it is being set and it matches behavior of running tests via `rails`
command (`rails test`), so no matter if `rake test` or `rails test` command
is used the exit code will be set.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We'd see the failures and errors reported after the run, which is needless, when we've already
reported them.
Turns:
```
.......................................S....................F
This failed
bin/rails test test/models/bunny_test.rb:14
....
Finished in 0.100886s, 1020.9583 runs/s, 1001.1338 assertions/s.
2) Failure:
BunnyTest#test_something_failing [/Users/kasperhansen/Documents/code/collection_caching_test/test/models/bunny_test.rb:15]:
This failed
103 runs, 101 assertions, 1 failures, 0 errors, 1 skips
You have skipped tests. Run with --verbose for details.
```
Into:
```
...................S.......................................F
This failed
bin/rails test test/models/bunny_test.rb:14
......................
Finished in 0.069910s, 1473.3225 runs/s, 1444.7143 assertions/s.
103 runs, 101 assertions, 1 failures, 0 errors, 1 skips
```
|
|
|
|
|
| |
Passing `--fail-fast` to the test runner will now abort the test run
on the first failure. The run continues on any unexpected errors.
|
|
|
|
|
|
|
|
|
| |
Any failures or errors will be reported inline during the run by default.
Skipped tests will be reported if run in verbose mode.
Any result is output with failure messages and a rerun snippet for that test.
Rerun snippets won't be output after a run, unless `--defer-output` is passed.
|
|
|
|
|
|
|
| |
This removes the following warning.
```
railties/lib/rails/test_unit/minitest_plugin.rb:45: warning: instance variable @rake_patterns not initialize
```
|
|
|
|
|
|
|
|
| |
test runner sets file to be tested in plugin_rails_options,
but in plugin_rails_options, processing has been made to the argument of the
actual command rather than the argument of Minitest.run.
For example, if you run `./bin rake db:migrate test`, the options[:patterns], `db:migrate test` was incorrectly set.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
The improvments to the test runner's integration with minitest in commit
b6fc8e25a10cc4abdd03018798b180270d6c5d7f add methods to the Minitest
module that refer to the Rails module. Unfortunately, when the
minitest-rails gem is loaded, the reference is incorrectly resolved to
the Minitest::Rails module.
|
|
|
|
|
|
|
|
|
|
|
| |
This also adds free mix and matching of directories, files and lines filters.
Like so:
bin/rails test models/post_test.rb test/integration models/person_test.rb:26
You can also mix in a traditional Minitest filter:
bin/rails test test/integration -n /check_it_out/
|
| |
|
|
Minitest Rails plugin should be loaded on test_help, so we report errors
even when not running from the runner.
Also fix the backtrace
|