scala - 当我将 Play 项目拆分为子模块时,我在哪里放置测试

标签 scala unit-testing playframework

软件栈:

  • Play :addSbtPlugin("com.typesafe.play"% "sbt-plugin"% "2.4.3")
  • 测试框架:"org.scalatestplus"%% "play"% "1.4.0-M3"%
    测试
  • 斯卡拉:scalaVersion:=“2.11.7”
  • Java:1.8.0.40-b26
  • SBT:
    sbt.version=0.13.8

  • 我有一个单一的 Play 应用程序,我将其拆分为子模块。我有许多单元测试和集成测试,它们当前位于项目根目录的/test 文件夹中。

    我将它分为两​​个主要模块“审计”和“用户”。目录结构目前是这样的
    /
    /conf  -- application.conf & routes which references the child module route files 
    /module
    /module/user
    /module/user/app   -- here I have UserController and some model code
    /module/user/conf  -- here I have user.Routes
    /module/audit
    /module/audit/app  -- here I have AuditController and some model code
    /module/audit/conf -- here I have audit.Routes
    /test
    

    测试(单元测试和 selenium 集成测试的混合)当前位于/tests 中。我想将单元测试移到他们的模块中。我已经尝试过“显而易见”:为了进行审计,我将它们放在/module/audit/test 和/module/audit/src/test/scala 中。在 SBT 中,我尝试了“inspect scalaSource”,它告诉我审计模块的测试目录是 ...preamble .../module/audit/test

    不幸的是,当我在 SBT 中尝试“测试”时,子模块中的测试没有被选中。我尝试将以下内容添加到审计模块

    测试中的 scalaSource := baseDirectory.value/"src"/"test"/"scala"

    “没有被拾取”是指“没有检测到文件中的编译错误”和“没有执行测试”。换句话说,似乎没有使用“测试中的 scalaSource”键

    为 Play 框架项目执行此操作的推荐方法是什么?

    最佳答案

    如果您的测试没有被 test 命令执行,可能是您的项目配置不正确。通常多项目 sbt 聚合子项目:

    lazy val parent = Project(
      id = "parent",
      base = file("."),
      settings = ...
    ).aggregate(audit, users)
    

    关于scala - 当我将 Play 项目拆分为子模块时,我在哪里放置测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33872137/

    相关文章:

    c# - 模拟没有接口(interface)或虚方法的类

    java.lang.RuntimeException : could not find scala-library. jar

    scala - 如何使用intellij运行多模块sbt的所有scalatest?

    scala - SBT 在程序中包含版本号

    scala - 动态组合函数

    unit-testing - 与 APIClient() 相比,使用 RequestsClient() 有什么优势?

    c# - 最小起订量 : Property is correctly set as virtual but still have invalid setup on a non-virtual member

    java - Play Framework : Run single selenium test on the command line (headless browser)

    playframework - Scala Play 配置文件中的转义字符

    scala - 无法从导入中隐藏 Scala 类