Configuration Sbt,多模块项目中缩放测试的测试选项

Configuration Sbt,多模块项目中缩放测试的测试选项,configuration,sbt,arguments,options,scalatest,Configuration,Sbt,Arguments,Options,Scalatest,我有一个多模块Sbt项目。在这个项目中,我使用ScalaTest,我希望在保持控制台输出的同时生成Html和Xml报告 我在一个简单的项目上完成了这篇文章,一切都很好: 但是在我的多模块项目中,testOptions似乎被忽略了。这些设置在通用设置定义中定义,该定义在所有模块中重复使用: def settingsCommon: Seq[Setting[_]] = Seq( scalaVersion := DefaultScalaVersion, scalacOptions ++= Seq

我有一个多模块Sbt项目。在这个项目中,我使用ScalaTest,我希望在保持控制台输出的同时生成Html和Xml报告

我在一个简单的项目上完成了这篇文章,一切都很好:

但是在我的多模块项目中,
testOptions
似乎被忽略了。这些设置在通用设置定义中定义,该定义在所有模块中重复使用:

def settingsCommon: Seq[Setting[_]] = Seq(
  scalaVersion := DefaultScalaVersion,
  scalacOptions ++= Seq(
    "-feature",
    "-encoding", "utf8",
    ...
  ),
  testOptions in Test ++= Seq(
    Tests.Argument(TestFrameworks.ScalaTest, "-oDI"),
    Tests.Argument(TestFrameworks.ScalaTest, "-h", "target/test-reports"),
    Tests.Argument(TestFrameworks.ScalaTest, "-u", "target/test-reports")
  ),
  ...
)

lazy val root = (project in file("."))
  .settings(settingsCommon)
  .aggregate(
    `shared`,
    `module-1`
  )

lazy val `shared` = (project in file("shared"))
  .settings(
    name := "shared"
  )
  .settings(settingsCommon)

lazy val `module-1` = (project in file("module-1"))
  .settings(settingsCommon)
  .dependsOn(`shared`)   
检查testOptions会得到这个结果(看起来还可以):

/home/me/my project/build.sbt:43
是我定义选项的正确行号)

加载项编辑: 显示测试选项看起来也不错:

sbt:my-project> ;reload;show testOptions
[info] Loading global plugins from /home/me/.sbt/1.0/plugins
[info] Loading settings for project backend-build from git.sbt,plugins.sbt ...
[info] Loading project definition from /home/me/my-project/project
[info] Loading settings for project root from build.sbt ...
[info] Resolving key references (26112 settings) ...
[info] Set current project to my-project (in build file:/home/me/my-project/)
[info] shared / Test / testOptions
[info]  List(Argument(Some(TestFramework(org.scalatest.tools.Framework, org.scalatest.tools.ScalaTestFramework)),List(-oDI)), Argument(Some(TestFramework(org.scalatest.tools.Framework, org.scalatest.tools.ScalaTestFramework)),List(-h, target/test-reports)), Argument(Some(TestFramework(org.scalatest.tools.Framework, org.scalatest.tools.ScalaTestFramework)),List(-u, target/test-reports)))

... The same for each modules ...
... Except one that is a Playframework module:
[info] play-module / Test / testOptions
[info]  List(Argument(Some(TestFramework(org.specs2.runner.Specs2Framework, org.specs2.runner.SpecsFramework)),List(sequential, true, junitxml, console)), Argument(Some(TestFramework(com.novocode.junit.JUnitFramework)),List(--ignore-runners=org.specs2.runner.JUnitRunner)), Argument(Some(TestFramework(org.scalatest.tools.Framework, org.scalatest.tools.ScalaTestFramework)),List(-oDI)), Argument(Some(TestFramework(org.scalatest.tools.Framework, org.scalatest.tools.ScalaTestFramework)),List(-h, target/test-reports)), Argument(Some(TestFramework(org.scalatest.tools.Framework, org.scalatest.tools.ScalaTestFramework)),List(-u, target/test-reports)))
编辑2:
show testFrameworks
display ScalaTest amongs其他:

[info]  List(TestFramework(org.scalacheck.ScalaCheckFramework), TestFramework(org.specs2.runner.Specs2Framework, org.specs2.runner.SpecsFramework), TestFramework(org.specs.runner.SpecsFramework), TestFramework(org.scalatest.tools.Framework, org.scalatest.tools.ScalaTestFramework), TestFramework(com.novocode.junit.JUnitFramework))
尽管有这种配置,我没有Html报告,只有默认的Xml报告和“-oDI”参数没有效果


你能帮我解决这个问题吗?谢谢

什么是
的输出;重新加载show testOptions
我在问题中添加了结果。我有一个类似的设置,我的html文件显示在根目标目录中,而不是项目的目录中。我可以通过将它添加到我的每个项目定义中来实现这一点:
设置(Test/testOptions+=Tests.Argument(TestFrameworks.ScalaTest,“-h”,target.value+”/testreports”)
我尝试了
这个构建/Test/testOptions+=…
,但是我不知道如何引用作业右侧的
ThisBuild
[info]  List(TestFramework(org.scalacheck.ScalaCheckFramework), TestFramework(org.specs2.runner.Specs2Framework, org.specs2.runner.SpecsFramework), TestFramework(org.specs.runner.SpecsFramework), TestFramework(org.scalatest.tools.Framework, org.scalatest.tools.ScalaTestFramework), TestFramework(com.novocode.junit.JUnitFramework))