Как запустить самые масштабные тесты в том же классе в ПАРАЛЛЕЛЬНОМ способе - PullRequest
0 голосов
/ 21 сентября 2018

в обновленной среде с

  • scala 2.12
  • sbt 1.1.4
  • scalatest 3.0.5

i 'Я не могу запускать тесты в одном и том же классе параллельно, потому что похоже, что sbt будет параллельно выполнять все классы, а не тесты в одном классе.

например,

  • У меня есть класс TestA в пакете qa.parallelism.этот класс содержит два теста с именами test1 и test2.
  • у меня есть другой класс с именем TestB в пакете qa.parallelism, который содержит тест с именем test1

, если я запускаю

testOnly qa.parallelism. *

по журналу я понимаю, что TestA.test1 и TestB.test1 выполнялись одновременно,

, но если я запускаю

testOnly qa.parallelism.TestA

, который содержит два теста (test1 и test2), я понимаю, что test2 будет выполнен в конце test1.

естьспособ запустить одновременно каждый тест одного класса или я должен создать класс для каждого теста?

спасибо.

1 Ответ

0 голосов
/ 21 сентября 2018

ParallelTestExecution Документы по умолчанию ScalaTest ведет себя так:

... параллельно запускать разные комплекты, но последовательно тестировать любой комплект.

Однако смешивание в признаке ParallelTestExecution позволяет параллельно выполнять тесты в одном и том же классе.Например,

import org.scalatest.{FlatSpec, Matchers, ParallelTestExecution}

class HelloSpec extends FlatSpec with Matchers with ParallelTestExecution {
  "The Hello object" should "say hello 1" in {
    println("1")
    Hello.greeting should be ("hello")
  }

  it should "say hello 2" in {
    println("2")
    Hello.greeting should be ("hello")
  }

  it should "say hello 3" in {
    println("3")
    Hello.greeting should be ("hello")
  }
}

выводит разные порядки printlns при разных выполнениях sbt test.

...