You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为使用ScalaTests的Scala SBT项目配置RTS工具Ekstazi/STARTS

Scala + SBT + ScalaTest 项目配置Ekstazi回归测试选择工具操作指南

只引入Ekstazi依赖不会自动触发RTS逻辑,你需要额外配置Java代理、ScalaTest监听器以及测试进程参数,完整配置步骤如下:

1. 完整build.sbt配置

// 引入Ekstazi相关依赖
libraryDependencies ++= Seq(
  "org.ekstazi" % "org.ekstazi.core" % "5.3.0",
  "org.ekstazi" % "org.ekstazi.scalatest" % "5.3.0" % Test
)

// 必须开启测试进程fork,否则Java代理无法正常挂载
Test / fork := true

// 自动识别依赖中的Ekstazi核心包并挂载为Java代理
Test / javaOptions += s"-javaagent:${(Test / dependencyClasspath).value.find(_.data.name.contains("org.ekstazi.core")).get.data.getAbsolutePath}"

// 为ScalaTest指定Ekstazi专属监听器,触发RTS筛选逻辑
Test / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-C", "org.ekstazi.scalatest.EkstaziReporter")

// 关闭SBT自带的测试增量缓存,避免与Ekstazi逻辑冲突
Test / incOptions := (Test / incOptions).value.withUseCachedCustomResolvers(false)

2. 生效验证步骤

  • 首次执行sbt test命令,会全量运行所有测试用例,Ekstazi会自动在项目根目录生成.ekstazi文件夹,存储所有类和测试的依赖映射关系
  • 修改任意业务代码后再次执行sbt test,Ekstazi会自动筛选仅与修改代码相关的测试用例运行,控制台会输出类似Ekstazi: selected 3 tests, skipped 17 tests的日志,代表RTS逻辑生效

3. 常见问题处理

  • 若运行时提示找不到Ekstazi代理包:可将org.ekstazi.core的jar包下载到项目根目录的lib文件夹下,将javaOptions配置修改为Test / javaOptions += "-javaagent:lib/org.ekstazi.core-5.3.0.jar"
  • 若修改代码后仍全量运行测试:确认当前ScalaTest版本≥3.0.0,Ekstazi 5.3.0仅适配3.0及以上版本的ScalaTest
  • 不需要使用RTS时,直接删除上述配置即可恢复默认全量测试逻辑

内容的提问来源于stack exchange,提问作者Ayush Goel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:36:04