我有一个Scala 2.3.11,sbt 1.9.3,zio 2.0.15,zio-test 2.0.15的项目。
在这个项目中,我混合了scalatest测试org.scalatest.flatspec.AnyFlatSpec
和ZIO Junit测试zio.test.junit.JUnitRunnableSpec
。
我加入了这行:
testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework")
字符串
以及以下依赖项:
val zioVersion = "2.0.15"
val scalaTestVersion = "3.2.16"
...
val testDeps = Seq(
"org.scalactic" %% "scalactic" % scalaTestVersion,
"org.scalatest" %% "scalatest" % scalaTestVersion % Test,
"dev.zio" %% "zio-test" % zioVersion % Test,
"dev.zio" %% "zio-test-sbt" % zioVersion % Test,
"dev.zio" %% "zio-test-magnolia" % zioVersion % Test,
"dev.zio" %% "zio-test-junit" % zioVersion % Test,
)
型
在SBT中,如果我尝试:
sbt:core> show testFrameworks
[info] * TestFramework(org.scalacheck.ScalaCheckFramework)
[info] * TestFramework(org.specs2.runner.Specs2Framework, org.specs2.runner.SpecsFramework)
[info] * TestFramework(org.specs.runner.SpecsFramework)
[info] * TestFramework(org.scalatest.tools.Framework, org.scalatest.tools.ScalaTestFramework)
[info] * TestFramework(com.novocode.junit.JUnitFramework)
[info] * TestFramework(munit.Framework)
[info] * TestFramework(zio.test.sbt.ZTestFramework)
[info] * TestFramework(weaver.framework.CatsEffect)
[info] * TestFramework(hedgehog.sbt.Framework)
型
因此,ZTestFramework
已正确添加。
我可以在Intellij中轻松运行ZIO Junit测试。
但是,当我运行sbt test
时,我期望运行ZIO测试。相反,只有scalatest测试运行。
知道为什么它不接收我的测试吗有没有办法进一步调试ZTestFramework
?
1条答案
按热度按时间fcg9iug31#
通过创建以下文件,我能够使用命令
sbt test
运行所有测试。build.sbt
个字符串
ZioHelloWorld.scala
个型
ZioHelloWorldSpec.scala
个型
ZioJunitHelloWorldSpec.scala
个你有两种Integrating ZIO Test with JUnit的方法。一个是下面添加的示例,另一个是在类定义上方添加注解
@RunWith(classOf[ZTestJUnitRunner])
,混合ZIOSpecDefault
而不是JUnitRunnableSpec
,并添加库"com.github.sbt" % "junit-interface" % "0.13.3" % Test
型
HelloScalaTest.scala
型
执行
sbt test
后,我得到以下输出型