简体   繁体   English

是否可以在包对象中进行 Scalatest 发现?

[英]Is it possible to make scalatest to discover within package object?

I have several test facets sharing multiple test classes, so I aggregate them into a trait to be mixin into package objects, expecting that those test classes will be discovered under the package:我有几个共享多个测试类的测试方面,所以我将它们聚合成一个特征以混合到包对象中,期望在包下发现这些测试类:

(In trait) (在特质中)

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") {}
    }
  }
}

(In package 1) (在包 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") {}

    }
  }
}

(In package 2) (在包装 2 中)

package com.spike.scalatest_spike

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

Unfortunately it appears that none of these classes (Suite1, Suite2, Sutie3) can be discovered when I invoke scalatest to run all the test under com.spike.scalatest_spike , the classes seems to be ignored in class discovery.不幸的是,当我调用 scalatest 在com.spike.scalatest_spike下运行所有​​测试时,似乎没有发现这些类(Suite1、Suite2、Sutie3),这些类似乎在类发现中被忽略了。

What changes should I make on my project or/and scalatest sourcecode to make it working?我应该对我的项目或/和 Scalatest 源代码进行哪些更改以使其正常工作?

If you're using SBT to invoke the testing then ensure sources are in src/test/scala or src/test/java as documented: https://www.scala-sbt.org/1.x/docs/Testing.html如果您使用 SBT 来调用测试,请确保源位于 src/test/scala 或 src/test/java 中,如文档所示: https : //www.scala-sbt.org/1.x/docs/Testing.html

If you're using a jar with the java or scala commands, it's possible your test classes are missing from the jar.如果您使用带有javascala命令的 jar,则 jar 中可能缺少您的测试类。 The former method may be easier since it doesn't require a jar to have all your test classes.前一种方法可能更简单,因为它不需要 jar 来拥有所有测试类。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM