Scala Sbt 0.13.x中的分叉和排序测试

Scala Sbt 0.13.x中的分叉和排序测试,scala,migration,sbt,Scala,Migration,Sbt,以下是Sbt 0.12.x的配置方式: parallelExecution in test := false testGrouping in Test <<= definedTests in Test map { tests => tests.map { test => import Tests._ import scala.collection.JavaConversions._ new Group( name = test.n

以下是Sbt 0.12.x的配置方式:

parallelExecution in test := false

testGrouping in Test <<= definedTests in Test map { tests =>
  tests.map { test =>
    import Tests._
    import scala.collection.JavaConversions._
    new Group(
      name = test.name,
      tests = Seq(test),
      runPolicy = SubProcess(javaOptions = Seq(
        "-server", "-Xms4096m", "-Xms4096m", "-XX:NewSize=3584m", 
        "-Xss256k", "-XX:+UseG1GC", "-XX:+TieredCompilation",
        "-XX:+UseNUMA", "-XX:+UseCondCardMark", 
        "-XX:-UseBiasedLocking", "-XX:+AlwaysPreTouch") ++
        System.getProperties.toMap.map {
          case (k, v)  => "-D" + k + "=" + v
        }))
  }.sortWith(_.name < _.name)
}
迁移更改只是一个问题


在Sbt 0.13.x中,是否有其他方法可以对测试进行分叉和排序以克服该异常?

在Linux和Mac OS上运行良好

Windows上出现错误,因为类路径长度的限制阻止启动测试代理实例,System.err中出现以下错误:

Error: Could not find or load main class sbt.ForkMain

我在将Scala回购迁移到sbt版本sbt.version=1.3.8(以前1.2.8还可以)时也遇到了这个错误。奇怪的是,它在我的mac上运行良好,但在teamcity linux构建代理上失败

对我来说,解决办法是设置

  fork := false,
in build.sbt

不确定回购协议之前为什么将其设置为fork:=true(猜测它是从其他地方剪切/粘贴的,因为在回购协议中没有明显的原因),但这一更改解决了问题。在我的mac电脑上,本地运行速度现在也快了几秒钟

请参见此处了解背景信息

  fork := false,