title: How to make SBT run test suites in parallel?
body: <p>I have a bunch of integration tests running by sbt, given test N suites with 1..M tests per each suite. 
  I have set <code>fork in IntegrationTest := true</code>, but test suites are always executed sequentially. According to the docs, this must not be the case: test suites should be executed concurrently.</p>
  
  <p>the test suites are a class as following:</p>
  
  <pre><code>class MyTestSuite1 extends FlatSpec with Matchers 
  ...
  it should "do A" {}
  it should "do B" {}
  </code></pre>
  
  <pre><code>class MyTestSuite2 extends FlatSpec with Matchers 
  ...
  it should "do C" {}
  it should "do D" {}
  </code></pre>
  
  <h2>the problem</h2>
  
  <p>MyTestSuite1 and MyTestSuiteN are executed sequentially (by the alphabet order to be exact)</p>
  
  <h2>expectation</h2>
  
  <p>MyTestSuite1 and MyTestSuiteM are executed concurrently</p>
  
  <h2>env</h2>
  
  <p>.sbopts:</p>
  
  <pre><code>-J-Xms1G
  -J-Xmx4G
  -J-XX:MaxMetaspaceSize=512m
  -J-Xss4M
  </code></pre>
  
  <h2>note</h2>
  
  <p>I noticed that all test are running using the same pool and thread, for example, <code>pool-1-thread-1</code> for all tests.</p>
  
  <p>sbt version: 1.2.8
  Scala: 2.12.8
  os: MacOS 10.15, Ubuntu 19.04
  Scalatest ver: 3.2.0-SNAP10</p>
  
  <p>Tried sbt v. 1.3.2 - same result.
  Adding </p>
  
  <pre><code>testOptions in IntegrationTest += Tests.Argument(TestFrameworks.ScalaTest, "-P4"),
  </code></pre>
  
  <p>does not help.</p>
  
  <p>============</p>
  
  <h2>Update</h2>
  
  <p><code>fork in(IntegrationTest, test) := true</code> works on a global level, but I have 2 projects and I want to make it work to preserve relative path to the proj.</p>
  
  <p>e.g.</p>
  
  <pre><code>lazy val `p1` = Project(id = "p1", base = file("./p1"))
    .configs(IntegrationTest)
    .settings(Defaults.itSettings: _*)
    .settings(
      fork in(IntegrationTest, test) := true,
      ...)
  
  lazy val `p2` = Project(id = "p2", base = file("./p2"))
    .configs(IntegrationTest)
    .settings(Defaults.itSettings: _*)
    .settings(
      fork in(IntegrationTest, test) := true,
      ...)
  
  </code></pre>
  
  <p>does not run tests in parallel</p>
  
  <p>instead, this runs in parallel, but, obviously, the home dir is set to be "." rather than to be "./p1" or "./p2" respectively:</p>
  
  <pre><code>fork in(IntegrationTest, test) := true
  
  lazy val `p1` = Project(id = "p1", base = file("./p1"))
    .configs(IntegrationTest)
    .settings(Defaults.itSettings: _*)
  </code></pre>