Как запустить ScalaTest в программе IntelliJ? - PullRequest
21 голосов
/ 22 декабря 2010

Я пытаюсь запустить тест scala flatspec в Intellij IDEA (последняя сборка сообщества, с последним плагином Scala), но я получаю ошибки «Пустой набор тестов».

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

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

ОБНОВЛЕНИЕ : аннотирование класса с помощью @RunWith(classOf[JUnitRunner]) также не помогает

Спасибо!

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

ОБНОВЛЕНИЕ: Переключение с 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

Ответы [ 9 ]

16 голосов
/ 25 июля 2013

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

В Конфигурации запуска создайте конфигурацию запуска ScalaTest и установите для параметра «Тип теста» значение «Все в пакете» иего "Пакет тестов" для пакета, который содержит ваши тесты.

7 голосов
/ 22 июля 2015

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

4 голосов
/ 22 декабря 2010

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

@RunWith(classOf[JUnitSuiteRunner])
class AuthorisationParserRunAsTest extends JUnit4(AuthorisationParserSpec)
object AuthorisationParserSpec extends Specification {
  ...
}
2 голосов
/ 15 февраля 2013

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

@RunWith(classOf[JUnitRunner])
0 голосов
/ 29 июня 2018

Я столкнулся с «Пустым набором тестов». проблема при выполнении отдельных тестов в FlatSpec. Я сузил основную причину до пробела в начале строки поведения.

Ex. В следующем коде первый тест будет запущен, но второй не будет (если выполняется отдельно). Это связано с наличием пробела в начале строки поведения «not run». Если вы снимаете его и запускаете снова, оно должно работать.

import org.scalatest.FlatSpec

class FlatSpecWhiteSpaceTest extends FlatSpec {
    "TestWithNoEmptySpace" should "run" in {
        runTest
    }

    "TestWithEmptySpace" should " not run" in {
        runTest
    }

    def runTest(): Unit = {
        val expectedValue = true
        val actualValue = true
        assert(expectedValue === actualValue)
    }
}
  • IDE: Intellij IDeA 2017.1C
  • Версия Scala: 2.11.8
  • Версия ScalaTest: 3.0.1
0 голосов
/ 14 июля 2016

На случай, если это кому-нибудь поможет - я попал в 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
    }

}
0 голосов
/ 03 февраля 2015

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

0 голосов
/ 24 июля 2011

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

0 голосов
/ 22 декабря 2010

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

...