Scala 端到端/集成测试-jenkins构建

Scala 端到端/集成测试-jenkins构建,scala,jenkins,continuous-integration,sbt,Scala,Jenkins,Continuous Integration,Sbt,我目前正在为我的Scala/Akka项目建立Jenkins CI 我设法创建了与BitBucket集成的构建,并在创建新的pull reuqest/更新旧的pull请求时执行构建 作为一个测试框架,我们使用的是Specs2,它还通过使用JUnit后期构建操作与Jenkins集成。现在我想知道如何在我的构建中正确执行e2e测试 基本上,在git存储库中,我们有两个项目,让我们称它们为mainproject和rest测试rest测试包含使用rest assured库编写的e2e测试。要执行它们,我需

我目前正在为我的Scala/Akka项目建立Jenkins CI

我设法创建了与BitBucket集成的构建,并在创建新的pull reuqest/更新旧的pull请求时执行构建

作为一个测试框架,我们使用的是
Specs2
,它还通过使用JUnit后期构建操作与Jenkins集成。现在我想知道如何在我的构建中正确执行e2e测试

基本上,在git存储库中,我们有两个项目,让我们称它们为
mainproject
rest测试
<代码>rest测试包含使用
rest assured
库编写的e2e测试。要执行它们,我需要启动
mainproject
应用程序(它使用
Spray
库来设置HTTP服务器),然后在
sbt
项目的
rest-test
中执行
test
任务

我的想法是执行
主项目
启动脚本(由
sbt native packager
生成),其内容如下:

$WORKSPACE/main-project/target/universal/stage/bin/main-project & echo $! > /tmp/main-project.pid
然后执行
rest tests
项目的
test
任务,最后使用保存在
/tmp/main project.PID
文件中的PID终止进程

最后一步应该使用来实现,因为如果一些
rest测试
失败,构建的下一步将不会执行(或者至少我是这么想的),并且我可以在构建完成后运行应用程序实例

这是我第一次设置CI系统,我的解决方案似乎有点粗糙(至少对我来说)。我想知道是否有更好/更惯用的方法来解决我运行需要另一个应用程序运行的e2e测试的问题