【发布时间】:2018-09-18 12:56:27
【问题描述】:
我遇到的问题是我无法使用 testOnly 为特定模块运行一项测试..
lazy val root = (project in file("."))
.settings(Commons.settings: _*)
.aggregate(utils, `some-service`, otherService)
如果在 sbt 我这样做:project some-service 然后testOnly *MyTest
我收到一个错误:
[error] Expected ID character
[error] Not a valid command: testOnly
[error] Expected project ID
[error] Expected configuration
[error] Expected ':' (if selecting a configuration)
[error] Expected key
[error] Expected '::'
[error] Expected end of input.
运行所有测试都很好,但不仅仅是特定的。 有人知道怎么做吗? 谢谢!
编辑:
val settings: Seq[Def.Setting[_]] = Seq(
version := appVersion,
scalaVersion := "2.11.11",
resolvers += Opts.resolver.mavenLocalFile,
resolvers += "conjars" at "http://conjars.org/repo",
resolvers += "clojars" at "https://clojars.org/repo",
resolvers += "RedisLabs" at "https://dl.bintray.com/spark-packages/maven/",
scalacOptions ++= Seq(
"-unchecked",
"-deprecation",
"-feature",
"-language:existentials",
"-language:higherKinds",
"-language:implicitConversions",
"-language:postfixOps",
"-Ywarn-dead-code",
"-Ywarn-infer-any",
"-Ywarn-unused-import",
"-Xfatal-warnings",
"-Xlint"
)
)
lazy val `some-service` = (project in file(s"$servicePrefix-service"))
.settings(Commons.settings: _*)
.settings(
libraryDependencies ++= someService
)
.settings(
Seq(
daemonUser.in(Docker) := "root",
version.in(Docker) := "latest",
dockerBaseImage := "openjdk:8",
dockerExposedPorts := Vector(8080),
javaOptions in Test += "-Dconfig.resource=application.test.conf",
fork in Test := true,
startDynamoDBLocal := startDynamoDBLocal.dependsOn(compile in Test).value,
test in Test := (test in Test).dependsOn(startDynamoDBLocal).value,
testOnly in Test := (testOnly in Test).dependsOn(startDynamoDBLocal).value,
testOptions in Test += dynamoDBLocalTestCleanup.value
//dynamoDBLocalInMemory := false ,
//dynamoDBLocalDBPath := Some("local-db/"),
//dynamoDBLocalCleanAfterStop := true
)
)
.dependsOn(utils, otherService)
.enablePlugins(JavaAppPackaging, DockerPlugin)
【问题讨论】:
-
您在
Commons.settings或some-service的设置中是否有最大依赖? -
没有它,代码将无法编译:)
-
好的,请在问题中添加更多
build.sbt -
你需要什么?
-
Commons.settings,some-service项目定义,如果有任何东西在build.sbt之外或root或任何其他项目定义(即Global或ThisBuild范围)中浮动。