4 ms·
This is way simplistic. Frequently testing with the real database wastes a tonne of time. I've worked with a team where running a single test with the true data
by CHY872 11y ago
This is way simplistic. Frequently testing with the real database wastes a tonne of time. I've worked with a team where running a single test with the true database took a minute, and there were 200 such tests.
Thankfully, the only guarantee they needed was that provided by a key-value store, so a ConcurrentHashMap was used on dev machines.
Then the true database was used by the CI server, and commits only occurred when all of the tests passed with the true db.
All of the OP's reasons would (in many cases) pale in comparison to 'My tests take hours to run'.
- spacemanmatt 11y agoWhen I last worked with a large PostgreSQL codebase, it ran ~400 PGTap tests in about 3 minutes. A typical test included 10-20 queries for setup and assertions.
- deleted 11y ago[deleted]
- jeltz 11y agoIf every test takes a minute then the database is probably not the culprit. I would suspect the test suite does something really stupid which a faster database would not fix. We have a slow, unoptimized test suite (it does some really stupid things) which hits the database in most test cases and it still manages to complete 6166 tests in 4 minutes on my laptop (this includes setting up and tearing down the database).