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

问题描述:

我试图运行Gatling测试。但让我的休息服务运行至关重要。如何在另一个测试之前运行一个项目?SBT:在多模块项目中运行另一个项目后运行测试

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是工作让我的服务运行,但我真的不知道如何实现这样的想法。

你用什么来运行你的REST服务?这是一个使用sbt-revolver的喷雾应用程序吗? 如果是这样的话我想这:

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

可能是足够的。 这意味着你会:

  • 在后台使用SBT-左轮手枪
  • 然后开始放送加特林模拟启动应用
  • ,最后停止服务器后,你的测试跑
+0

感谢这方面的初步指导,有没有机会充实这个例子呢?那个'.settings'是否被链接到文件...'声明中的'lazy val root = project?我是否需要从'build.sbt'中的左轮手枪导入'reStop'和'reStart'? 我对完成同样的事情很感兴趣,但我是'sbt'和'revolver'的新手。 – gempesaw 2015-10-22 20:22:19