> I suppose the reason is because it takes more time?
I assume so. I didn't even notice that the article didn't motivate that `async: false` is bad. I always avoid it if I can since you might as well perform independent tests concurrently.
From the docs [1]:
* `:async` - configures tests in this module to run concurrently with tests in other modules. Tests in the same module never run concurrently. It should be enabled only if tests do not change any global state. Defaults to `false`.
One feature I've never seen in test frameworks that I think would be good:
Instead of concurrency being a boolean on/off, tests should be able to declare a list of shared dependencies (e.g. using arbitrary string identifiers). Then the test runner could make sure no two tests with the same dependency run at the same time, but still use as much concurrency as possible.
You could extend this further by marking certain dependencies as read-only, so the read-only tests can still run in parallel with each other.
I suppose the reason is because it takes more time? (The article doesn't mention, and just takes it as a given)