Подтвердить что ты не робот

Как запустить scala ScalaTest в идее IntelliJ?

Я пытаюсь запустить тест scala flatspec в Intellij IDEA (последняя сборка сообщества, с последним плагином scala), но я продолжаю получать ошибки "Empty test suite".

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

Я смог использовать JScalaTest с единицей, но я бы предпочел использовать синтаксис flatspec.

UPDATE: аннотирование класса с помощью @RunWith(classOf[JUnitRunner]) не помогает

Спасибо!

class SampleTestSpec extends FlatSpec with ShouldMatchers {
    "test" should "fail" in {
        "this" should equal ("that")
    }
}

UPDATE: переключение с ScalaTest на Spec, решило проблему. Я по-прежнему предпочитаю ScalaTest с FlatSpec, но это достаточно хорошо. Код, который работает:

import org.specs._
object SampleTestSpec extends Specification {
    "'hello world' has 11 characters" in {
     "hello world".size must be equalTo(113)
  }
  "'hello world' matches 'h.* w.*'" in {
     "hello world" must be matching("h.* w.*")
  }
}

-teo

4b9b3361

Ответ 1

Я запускал его так (но я считаю, что это немного подробный, и его можно, вероятно, сократить):

@RunWith(classOf[JUnitSuiteRunner])
class AuthorisationParserRunAsTest extends JUnit4(AuthorisationParserSpec)
object AuthorisationParserSpec extends Specification {
  ...
}

Ответ 2

Если IntelliJ не забирает тесты автоматически, вы можете сделать следующее:

В конфигурации "Запуск" создайте конфигурацию запуска ScalaTest и настройте ее "Тип теста" на "Все в пакете" и "Тестовый пакет" на пакет, содержащий ваши тесты.

Ответ 3

Это сработало для меня: Изменить конфигурации → Тип проверки: все в пакете

Ответ 4

ScalaTest имеет обзор по всем возможностям; Я просто аннотировал все тестовые классы с помощью

@RunWith(classOf[JUnitRunner])

Ответ 5

AFAIK, JUnitRunner именно для этого.

Ответ 6

Слишком поздно, но я столкнулся с той же проблемой ("Пустое тестовое приложение" ). После того, как я повесил трекер IDEA, я нашел решение для своего дела:
Моя версия scala была 2.9.0-1 и scala-test имеет версию 2.8.*.
Он начал работать после обновления scala-test до самой новой версии (такой же, как scala).

Ответ 7

Мне удалось запустить тесты FunSuite в IntelliJ без каких-либо проблем. Однако то, что я обнаружил при работе с тестами FlatSpec, заключается в том, что вам нужно щелкнуть правой кнопкой мыши или поместить курсор в фактическое определение класса тестов, если использовать Ctrl + Shift + F10 (т.е. Запустить все тесты), чтобы он мог правильно выполнить все определенные тесты и избегайте разочаровывающих ошибок "Empty test suite".

Ответ 8

В случае, если это кому-то помогает - я попал в эту новость до Scala, и это было из-за того, как я структурировал свой тестовый класс. У меня был

class SomeTests extends FlatSpec {
  def aTest = {
    "This thing when that thing happens" should
    "return some particular response" in {
      // ... test body
    }
  }
}

Проблема заключалась в том, что я завернул свой тест в методе, не понимая, что в этом контексте тесты должны быть пустыми:

class SomeTests extends FlatSpec {

    "This thing when that thing happens" should
    "return some particular response" in {
      // ... test body
    }

}