SBT自定义配置下运行带Iele标签测试无执行结果问题排查
sbt自定义标签测试无执行用例解决方案
问题根因为自定义的iele测试配置默认使用独立的源码目录规则,会从src/iele/scala路径下读取测试源码,你没有将打了Iele标签的测试放在该路径下,自然找不到可执行的测试用例。
无需调整测试文件存放路径,只要让自定义的iele配置复用Test配置的源码、资源和类路径即可,修改你的build.sbt配置如下:
// 原有Iele配置定义部分修改为以下内容 val Iele = config("iele") extend Test // 核心配置:复用Test配置的测试源、资源和依赖类路径 Iele / unmanagedSourceDirectories := (Test / unmanagedSourceDirectories).value Iele / unmanagedResourceDirectories := (Test / unmanagedResourceDirectories).value Iele / dependencyClasspath := (Test / dependencyClasspath).value Iele / testLoader := (Test / testLoader).value // 原有测试参数逻辑保留 Test / testOptions += Tests.Argument("-l", "iele") Iele / testOptions -= Tests.Argument("-l", "iele") Iele / testOptions += Tests.Argument("-n", "iele") // 原有node项目配置不需要改动,保留你已有的configs和inConfig配置即可 node .configs(Integration, Benchmarks, EvmTest, PrecompiledContracts, Iele) .settings( inConfig(Integration)( Defaults.testSettings ++ BloopDefaults.configSettings ++ Seq(parallelExecution in Test := false) ): _* ) .settings(inConfig(Benchmarks)(Defaults.testSettings ++ BloopDefaults.configSettings): _*) .settings(inConfig(Iele)(Defaults.testSettings ++ BloopDefaults.configSettings): _*)
配置修改完成后重新加载sbt项目,执行iele:test命令就会正确识别所有打了@Iele标签的测试用例并执行,默认执行test命令时仍然会跳过这些用例,完全符合预期需求。
内容的提问来源于stack exchange,提问作者Joseph Denman
相关产品推荐
相关产品推荐

