scala - 每个配置的类路径依赖项不适用于 SBT 中的 test->test?

标签 scala sbt

我有一个包含 scalania 主项目以及 exercisesanswers(子)项目的多项目构建。

The scalania project托管在 GitHub 上。

我正在尝试设置一个 SBT 项目配置,其中测试类是 exercises 项目的一部分,而 answers 项目提供解决方案。

我读到Per-configuration classpath dependencies在SBT的官方文档中,最终在scalania主项目中得到了以下配置:

lazy val exercises = project

lazy val answers = project.dependsOn(exercises % "test->test")

它似乎不起作用,在测试执行时我得到:

> project answers
[info] Set current project to scalania-answers (in build file:/Users/jacek/oss/scalania/)
> test
[info] Passed: Total 0, Failed 0, Errors 0, Passed 0
[info] No tests to run for answers/test:test
[success] Total time: 1 s, completed Oct 27, 2013 1:06:51 AM

直到我将 answers/build.sbt 更改为以下内容:

scalaSource in Test := (scalaSource in LocalProject("exercises") in Test).value

现在工作正常。

> reload
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Loading project definition from /Users/jacek/oss/scalania/project
[info] Set current project to scalania-answers (in build file:/Users/jacek/oss/scalania/)
> project answers
[info] Set current project to scalania-answers (in build file:/Users/jacek/oss/scalania/)
> testOnly *s99.P01*
[info] Formatting 19 Scala sources {file:/Users/jacek/oss/scalania/}answers(test) ...
[info] Compiling 19 Scala sources to /Users/jacek/oss/scalania/answers/target/scala-2.10/test-classes...
[info] P01Spec
[info]
[info] P01 solution should
[info] + Find the last element of a list
[info]
[info]
[info] Total for specification P01Spec
[info] Finished in 151 ms
[info] 1 example, 0 failure, 0 error
[info] Passed: Total 1, Failed 0, Errors 0, Passed 1
[success] Total time: 74 s, completed Oct 27, 2013 1:09:07 AM

仅使用 project.dependsOn(exercises % "test->test") 有什么问题吗?我在构建配置中遗漏了一些东西吗?

最佳答案

声明对另一个项目中的测试的依赖只会使类路径可用。默认情况下不会运行其测试,因为否则测试将在仅重用代码的常见情况下运行多次。

要在另一个项目中运行测试,请将其他项目中发现的测试添加到当前项目的测试中:

definedTests in Test := 
   (definedTests in Test).value ++
   (definedTests in exercises in Test).value

关于scala - 每个配置的类路径依赖项不适用于 SBT 中的 test->test?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19612901/

相关文章:

scala - scalaz-stream 中带有 chunk 和 zipWithIndex 的令人困惑的行为

scala - 将 Scala 部署到 NixOps

hadoop - Spark Streaming + Hbase:NoClassDefFoundError:org/apache/hadoop/hbase/spark/HBaseContext

regex - Scala:标记简单算术表达式

java - SBT 不生成 jar 文件

java - 如何在play框架中忽略要编译的文件夹

scala - SBT 在 Artifactory Maven 存储库中找不到快照

java - NoSuchMethodError : scala. Predef$.$conforms()Lscala/Predef$$less$冒号$less

java - 为什么从 java.util.HashMap[Long,Long] 获取丢失的键会返回 0L?

json - Scala argonaut 将 jEmtpyObject 编码为 'false' 而不是 'null'