When running unit tests don't accidentally overwrite your db #24652
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.
Overview
Update civicrm.settings.php to abort instead of falling back your "real" db.
Before
As currently written, this if-block will fall back to your "real" db if for whatever reason
$GLOBALS['_CV']['TEST_DB_DSN']
isn't set, potentially causing the test sytem to overwrite the data.After
Aborts instead.
Technical Details
I'm not sure why
$GLOBALS['_CV']['TEST_DB_DSN']
wasn't set in my case, possibly a windows+cv+drupal8 situation failing to find some path - I don't usually run core tests with that combo. So the actual problem might be elsewhere but I'm thinking better to abort so you can then go search for the problem rather than overwrite the db.Comments
There might be a legitimate configuration where the expectation is it uses the value in civicrm.settings.php instead of the test db when it's blank, but I'm not sure what that would be.