scala-cli 测试未使用 scalacheck 运行

问题描述 投票:0回答:1

我用

scala-cli
scalatest-funsuite
。这是片段

//> using scala 3.3.3
//> using test.dep org.scalatest::scalatest-funsuite:3.2.19
//> using test.dep org.scalatestplus::scalacheck-1-18::3.2.19.0

import org.scalatest.funsuite.*
// import org.scalatestplus.scalacheck.*

class HelloScalatestSuite extends AnyFunSuite {

  test("hello() must return hello when no args "){ 
    assertResult(20)(1 + 1)
  }

}

scala-cli test . 
时,测试必须失败,但测试本身不会被识别。 注释掉
//> using test.dep org.scalatestplus::scalacheck-1-18::3.2.19.0
按预期运行测试。同一组依赖项(scalacheck + scalatest 与 sbt 配合良好。

我在 scala-cli 设置中缺少什么?

scalatest scala-cli
1个回答
0
投票

我认为问题与同时导入了 2 个测试库有关。不确定 ScalaCheck 是否算作 1,但它似乎导致问题表明类似的情况......我认为自动检测会扫描类路径,因此其中的某些内容一定会引起混乱。

当我向 scala-cli 显式指定 ScalaTest 的框架实现时,它开始工作:

//> using testFramework org.scalatest.tools.Framework

该修复原则上可能适用于最终未被检测到的任何测试框架组合。

我发现这个信息是通过注意到 scala-cli 文档提到了 Weaver 的类似内容(

using testFramework
),从一次我读到如何实现你自己的 Scala 测试框架时认识到了 sbt Framework 接口,并在ScalaTest 的 API 文档。

© www.soinside.com 2019 - 2024. All rights reserved.