fix(test): separate test db to isolate concurrent test instances #975
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.
Through the logs of unit tests, I observed that concurrent tests often fail, which puzzled me. Initially, I thought it was due to concurrency issues and improper locking. However, further testing revealed that the problem was not with improper locking but with the shared database and its data among these test instances. This led to dirty data being read during concurrent testing. The design did not originally consider distributed deployment, and without database-level or distributed locks, multiple instances should not access the same database simultaneously. This PR modifies the approach to create a separate, isolated database for each test instance by calling the
NewTestApp
function, preventing the issues mentioned above.