Automatic stdout/stderr assertion updates #1853
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When I was working on the ripper compiler, I found it difficult to have to update every single assertion that is assertion against stdout/stderr of tapioca. Because it's not assertion against a subset, any change to the logic will cause the entire test to fail and have to be updated.
These are more like snapshot tests than unit tests. Therefore I built a way to update all of the snapshots in one go. It's not meant to be comprehensive or even tested, but I found it very useful as opposed to trying to update every fixture myself, so I figured I would upstream it in case there was interest.
You trigger it by running the test suite with
TAPIOCA_ASSERTIONS_UPDATE=1
. You can see how it works by — for example — changing"Loading DSL extension classes... "
to something else, runningTAPIOCA_ASSERTIONS_UPDATE=1 bin/test spec/tapioca/cli/dsl_spec.rb
, and seeing how everything changes.