Introduce test categories/tags and run them in parallel at CI level

Description

Currently, we run all "short" integration tests per server version.

There is no need to run all the short test suite per commit, most of the driver functionality doesn't vary by server version. By separating groups of tests into tags, we could speed up significantly the build (maybe from 1h to 40m on the DSE driver side and from 30 mins to probably 15 minutes on the OSS side) while using less hardware resources per commit.

This new dimension in the CI matrix could be separated into:

  • Simple: all except the ones below.

  • Complex: pool tests, error tests, load balancing tests, execution profile tests, graph timeout tests, graph olap, control connection tests.

  • Simulated: simulacron-based tests.

Mocha has a way to deal with tags: https://github.com/mochajs/mocha/wiki/Tagging
It's not very elegant but its good enough to do the job.

We could use the "simple" category for the server smoke tests NODEJS-519.

Environment

None

Pull Requests

None

Assignee

Unassigned

Reporter

Jorge Bay Gondra

Reviewer

None

Fix versions

None

Labels

None

Components

None

PM Priority

None

Pull Request

None

Priority

Major