Description
This issue is part of a broader proposal to merge some of the features in lucidsoftware/rules_scala into this ruleset.
The tracking issue for this effort
The relevant proposal section.
From the proposal:
Currently,
bazelbuild/rules_scala
’s test runners invoke ScalaTest’s test runner or specs2’s test runner, depending on which framework is being used. This means that every test in a given target runs under the same process, which is ideal in most circumstances but may not work for tests that manipulate global state.At Lucid, when we migrated from sbt to Bazel, running all tests in the same process posed a problem because we relied on sbt’s fork := true option, which enables test process isolation. We solved this problem by adding optional classloader and process test isolation to our ruleset, which run tests with separate classloaders and processes, respectively. See our different test runners for more details. We’d like to add these isolation settings to
bazelbuild/rules_scala
to ease the migration from sbt to Bazel.