可选择在 SBT 中使用自定义配置运行测试
Posted
技术标签:
【中文标题】可选择在 SBT 中使用自定义配置运行测试【英文标题】:Optionally running tests in SBT with a custom configuration 【发布时间】:2021-09-30 01:47:12 【问题描述】:我正在尝试配置我的测试,以便默认情况下不运行其中的一部分,但可以有选择地运行。我在网上找到的这个问题的解决方案建议标记测试子集并在build.sbt
的项目定义中创建自定义配置。
这就是我所拥有的:
val node = project
.in(file("node/instance"))
.dependsOn(...)
.settings(commonSettings("node"): _*)
.settings(
(soliditySources in Compile) ++= Seq(
baseDirectory.value / "src" / "evmTest" / "resources" / "solidity",
baseDirectory.value / "src" / "test" / "resources" / "solidity",
baseDirectory.value / "src" / "precompiledContracts" / "resources" / "solidity"
)
)
val Integration = config("it") extend Test
scalastyleSources in Test ++= (unmanagedSourceDirectories in Integration).value
val Benchmarks = config("benchmarks") extend Test
Test / testOptions += Tests.Argument("-l", "iele")
val Iele = config("iele") extend Test
Iele / testOptions -= Tests.Argument("-l", "iele")
Iele / testOptions += Tests.Argument("-n", "iele")
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): _*)
我的标签是:
object Iele extends Tag("iele")
问题是当我在 sbt shell 中运行 iele:test
时,命令立即返回成功并且没有运行任何测试。我怀疑这是因为测试源文件没有放在专用的iele
文件夹中,但我不想这样做。我正在运行 sbt 版本1.4.9
。
【问题讨论】:
【参考方案1】:您不需要单独的 sbt 配置来运行标记测试。
https://www.scalatest.org/user_guide/using_scalatest_with_sbt
你可能想做testOnly -- -n iele
之类的事情
【讨论】:
我希望test
或testOnly
默认排除测试,并且我想添加一个只执行测试的命令。 testOnly -- -n iele
有效,但默认情况下它不能帮助我排除测试。以上是关于可选择在 SBT 中使用自定义配置运行测试的主要内容,如果未能解决你的问题,请参考以下文章
无法从 AutoPlugin 的命令运行自定义 sbt 任务
Scala SBT - sbt-native-packager,如何指定自定义阶段目录