Как запустить 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
Ответы
Ответ 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
}
}