SBT:在多模块项目中运行另一个项目后运行测试

时间:2014-09-21 10:41:55

标签: build sbt multi-module gatling integration-testing

我试图进行加特林测试。但让我的休息服务运行至关重要。如何在测试之前运行一个项目?

lazy val root =
    project.in( file(".") )
      .aggregate("cep", "gatlingTest")

lazy val cep = Project("cep", file("cep"))
    .settings(version := "1.0")......

lazy val gatlingTest = Project("gatlingTest", file("gatling"))
    .enablePlugins(GatlingPlugin)
    .settings(libraryDependencies ++= Seq(.......

我试图添加这样的东西(dependsOn):

lazy val gatlingTest = Project("gatlingTest", file("gatling")).dependsOn(cep)

但这不是我需要的。

也许莫名其妙

lazy val gatlingTest = Project("gatlingTest", file("gatling"))
.settings (test in Test <<= test.dependsOn(getProjectRunningTask))

其中getProjectRunningTask是使我的服务运行的任务,但我真的不知道如何实现这样的想法。

1 个答案:

答案 0 :(得分:1)

您使用什么来运行REST服务?它是使用sbt-revolver的Spray应用程序吗? 如果是这样的话,我想:

.settings(test in Gatling <<= reStop.dependsOn(test in Gatling).dependsOn(reStart)

就足够了。 这意味着你会:

  • 使用sbt-revolver
  • 在后台启动您的应用
  • 然后开始运行您的Gatling模拟
  • 最后在测试运行后停止服务器