有可能让scalatest在包对象中发现吗



我有几个测试方面共享多个测试类,所以我将它们聚合为一个特性,以混合到包对象中,期望这些测试类将在包下被发现:

(特征(

trait AbstractPackageTests {
val name: String
class Suite1 extends FunSpec {
describe(name) {
it("test 1") {}
it("test 2") {}
}
}
class Suite2 extends FunSpec {
describe(name) {
it("test 3") {}
it("test 4") {}
}
}
}

(包装1(

package com.spike.scalatest_spike
package object facet1 extends FunSpec with AbstractPackageTests {
override val name: String = "facet 1"
class Suite3 extends FunSpec {
describe(name) {
it("test 5") {}
}
}
}

(包装2中(

package com.spike.scalatest_spike
package object facet2 extends AbstractPackageTests {
override val name: String = "facet 2"
}

不幸的是,当我调用scalatest在com.spike.scalatest_spike下运行所有测试时,似乎无法发现这些类(Suite1、Suite2、Sutie3(,这些类在类发现中似乎被忽略了。

我应该对我的项目或/和scalatest源代码进行哪些更改才能使其正常工作?

如果您使用SBT来调用测试,请确保源位于src/test/scala或src/test/java中,如文档所示:https://www.scala-sbt.org/1.x/docs/Testing.html

如果您使用带有javascala命令的jar,那么jar中可能缺少测试类。前一种方法可能更容易,因为它不需要一个jar来拥有所有的测试类。

相关内容

  • 没有找到相关文章

最新更新