Можно ли сделать самый масштабный для обнаружения в объекте пакета? - PullRequest
1 голос
/ 19 февраля 2020

У меня есть несколько тестовых аспектов, совместно использующих несколько тестовых классов, поэтому я собираю их в черту, которая будет смешана в объектах пакета, ожидая, что эти тестовые классы будут обнаружены в пакете:

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

(в пакете 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"
}

К сожалению, похоже, что ни один из этих классов (Suite1, Suite2, Sutie3) ) можно обнаружить, когда я вызываю scalatest для запуска всего теста в com.spike.scalatest_spike, классы, кажется, игнорируются при обнаружении класса.

Какие изменения я должен внести в свой проект или / и масштабировать исходный код, чтобы сделать его рабочий

1 Ответ

0 голосов
/ 20 февраля 2020

Если вы используете SBT для запуска тестирования, убедитесь, что источники находятся в src / test / scala или src / test / java, как задокументировано: https://www.scala-sbt.org/1.x/docs/Testing.html

Если вы используете jar с командами java или scala, возможно, ваши тестовые классы отсутствуют в jar. Первый метод может быть проще, так как он не требует наличия jar для всех ваших тестовых классов.

...