【发布时间】:2017-01-13 07:16:43
【问题描述】:
我有一个使用几个测试框架(ScalaTest 和 ScalaCheck)的 SBT 项目。在大多数情况下,这只是按预期工作。例如。 running test 运行两种测试变体。
libraryDependencies ++= Seq(
...
"org.scalatest" %% "scalatest" % "2.2.4" % "test",
"org.scalacheck" %% "scalacheck" % "1.12.5" % "test"
)
但是,在运行 test-only 时,当我尝试向 ScalaCheck 提供参数时,ScalaTest 会介入并抱怨:
test-only *SomeProp -- -s 10
[错误] (test:testOnly) java.lang.IllegalArgumentException: 指定 套件 (-s ) 或嵌套套件 (-i ) 不是 从 sbt 运行 ScalaTest 时支持;请使用 sbt 的 test-only 而是。
在上面的例子中,ScalaTest 是用 -s 参数而不是 ScalaCheck 调用的。
通过查看 ScalaTest 的测试指纹:
superclass is "org.scalatest.Suite" or annotated with: "org.scalatest.WrapWith"
和 ScalaCheck:
superclass is either "org.scalacheck.Properties" or "org.scalacheck.Prop"
我认为 SBT 对于给定类型的测试运行哪个框架应该没有混淆,给定上述指纹。 (*SomeProps 变体扩展了 org.scalacheck.Properties。)
我有什么方法可以指定使用 test-only 调用哪个测试框架?如果不需要,我是否需要配置 SBT 以在不同的配置下运行 ScalaTest 和 ScalaCheck?
【问题讨论】:
标签: scala sbt scalatest scalacheck