java - 如何在用Java编写的多模块 Play 项目中运行单元测试

标签 java scala playframework sbt

所以我有以下项目结构和一个用 Java 编写的 play 项目:

conf\
modules\
    first\
        app\
        test\
    second\
        app\
        test\ 
build.sbt

在我的 build.sbt 中,我有以下内容


lazy val first= project.in(file("modules/first"))
  .enablePlugins(PlayMinimalJava)

lazy val first= project.in(file("modules/second"))
  .enablePlugins(PlayMinimalJava)

lazy val whole = project.in(file("."))
  .enablePlugins(PlayMinimalJava)
  .dependsOn(first, second)

现在,我想运行每个子项目中的 JUnit 测试。当我将它们放在 test/ 的根目录中时,如果我执行 sbt test,它们就会运行。但是,如果将它们移动到子项目测试目录中 - 在 modules/first/test/modules/second/test/ 处 - 它们不会运行。

要运行我的测试需要缺少什么?

最佳答案

您需要使用聚合。这里引用 sbt docs

Aggregation means that running a task on the aggregate project will also run it on the aggregated projects.

尝试使用这个

lazy val whole = project.in(file("."))
  .aggregate(first, second)
  .enablePlugins(PlayMinimalJava)
  .dependsOn(first, second)

关于java - 如何在用Java编写的多模块 Play 项目中运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56893101/

相关文章:

java - 使用 JFileChooser 获取用户选择的文件数量

java - JAR 在本地工作,但在 Docker 容器中挂起失败 - Apache-POI

scala - 如何打印在环境变量中使用的依赖 jar ?

jpa - playframework JPA 错误和数据库设计问题

mongodb - 在我的 Play2 应用程序中使用 Future 执行 getOrElse 时获取值映射不是对象的成员

java - Play Framework 2.6 在 intellij Idea 2016.3.6 中无法正常工作

java - 将对象传递给构造函数最好是作为对象还是作为页面参数中的序列化对象?

scala - 在使用 Play 框架的 Scala 函数定义中,单词 "Action"有什么作用?

java - 从 Java 访问时,Scala public 变为 private?

java - 本程序无法显示网页: