如何在FlatSpec中跳过测试?已损坏单元测试标记跳过问题咨询
解决Scala测试中
cancel命令在IntelliJ里冗余输出的问题 我完全懂你的困扰——有个坏掉的单元测试暂时不想修,用cancel标记跳过后在sbt控制台显示得挺清爽:[info] - should be true !!! CANCELED !!!,但到了IntelliJ里就一堆冗余信息,看着特别烦。咱们来试试这几个靠谱的解决方案:
方案1:用pendingUntilFixed替代cancel(最推荐)
ScalaTest自带的pendingUntilFixed方法简直是为这种场景量身定做的——它会把测试标记为PENDING,同时能自定义醒目的提示消息,不管是sbt还是IntelliJ,都能清晰显示状态和你的备注,而且不会产生冗余输出。
修改后的测试代码如下:
it should "be true" in { pendingUntilFixed("测试已损坏,暂不修复") { assert(false) } }
运行后,sbt里会显示类似[info] - should be true (PENDING: 测试已损坏,暂不修复)的提示,IntelliJ的测试面板里也会明确标记为Pending,同时展示你的自定义消息,干净又直观。
方案2:调整IntelliJ的测试配置(适配cancel的场景)
如果你就是想用cancel,那可以通过调整IntelliJ的测试运行配置来过滤冗余输出:
- 打开「Run/Debug Configurations」,找到你对应的ScalaTest配置
- 切换到「Logs」标签页,勾选「Hide passed tests」,能减少一部分无关输出
- 还可以在「VM options」里添加参数
-Dscalatest.logLevel=WARN,让ScalaTest只输出警告及以上级别的日志,把冗余的调试信息压下去
方案3:自定义跳过标签(备选)
如果上面两种都不符合你的需求,还可以给测试加个自定义标签,比如@Tag("SkippedBrokenTest"),然后在运行测试时过滤这个标签,但这种方式不会直接显示醒目的警告消息,更适合批量管理跳过的测试,不如前两种直观。
内容的提问来源于stack exchange,提问作者k0pernikus
相关产品推荐
相关产品推荐

