I have a multi-project build with tests in sub-projects and in a parent project. The build is aggregated so that the parent project runs all tests in child projects.
I configured it so that there's no parallel execution of tests in both the sub-projects and the parent project, via
parallelExecution in Test := false
However, I have the nagging feeling that tests that span over multiple projects are ran in parallel. In the case of one of the sub-projects this is a problem because it mutates state in a test database concurrently, leading to the test to fail.
Any ideas as to how to globally switch of parallel execution of tests, between projects?
In parallel testing, we test different modules or applications on multiple browsers in parallel rather than one by one. The parallel test execution is different from sequential testing, where we test different modules or functionalities one after the other.
Parallel testing can save your team from delays in delivery without compromising the quality, which makes it superior to sequential testing. With parallelization, you can cut your QA expenses, run cases at high concurrency, optimize your CI/CD processes and constantly improve your scripts to get more accurate results.
You can parallel test at scale by integrating test automation frameworks with a cloud-based solution, which takes care of device management. The opposite of parallel testing is sequential testing.
I think you can apply a setting across projects using scope ThisBuild
, like
parallelExecution in ThisBuild := false
I don't know if you can combine that with scope Test
, but it might not be necessary.
To restrict the number of concurrently executing tests in all projects, use:
concurrentRestrictions in Global += Tags.limit(Tags.Test, 1)
See sbt documentation
See discussion
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With