Как узнать, какой тест в данный момент выполняется - PullRequest
0 голосов
/ 02 октября 2018

У нас тысячи тестов, и один из них застрял (возможно, какой-то бесконечный цикл).

Я хотел бы знать, какие тесты запущены, но sbt отображает только те тесты, которые выполнены.Он также показывает названия тестов, но, как я уже сказал, у нас слишком много тестов, чтобы знать, к какому названию относится этот тест.

1 Ответ

0 голосов
/ 03 октября 2018

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

-f output.txt

в сочетании с флагом неформатированного или "некрасивого" режима U, который

Вместо того, чтобы пытаться сделать вывод максимально привлекательным и понятным для человека, неформатированный режим просто выводит подробную информацию о каждом событии по мере его поступления, помогая отследить проблему, которую вы пытаетесь отладить.

и затем выводит файл вывода во время выполнения теста

tail -f output.txt

, который будет отображать события в реальном времени, как они происходят, а не в конце тестирования.

Теперь приведен следующий пример

Test / testOptions += Tests.Argument("-fU", "output.txt")

class HelloSpec extends FlatSpec with Matchers {
  "The Hello object" should "satisfy case 1" in {
    assert(true)
  }

  it should "satisfy case 2" in {
    assert(true)
  }

  it should "satisfy case 3 (stuck here)" in {
    while(true) { /* do something forever */ }
    assert(true)
  }

  it should "satisfy case 4" in {
    assert(true)
  }
}

, затем tail -f output.txt выводит

Run starting. Expected test count is: 0
Suite Starting - HelloSpec
Scope Opened - HelloSpec: The Hello object
Test Starting - HelloSpec: The Hello object should satisfy case 1
Test Succeeded - HelloSpec: The Hello object should satisfy case 1
Test Starting - HelloSpec: The Hello object should satisfy case 2
Test Succeeded - HelloSpec: The Hello object should satisfy case 2
Test Starting - HelloSpec: The Hello object should satisfy case 3 (stuck here)

, где мы можем идентифицировать тест на зависание в последней строке.

...