Как запустить Scala ScalaTest в IntelliJ idea?
Я пытаюсь запустить тест Scala flatspec в Intellij IDEA (последняя сборка сообщества с последним плагином Scala), но я продолжаю получать ошибки "пустой тестовый набор".
Я попытался использовать обычное меню " run " при щелчке правой кнопкой мыши, но это не работает. Я также попытался создать новую конфигурацию ScalaTest, но все равно бегун не собирает тесты.
я смог использовать JScalaTest с unit, но я бы предпочел использовать flatspec синтаксис.
обновление: аннотирование класс @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
9 ответов
я запускал его так (однако я нахожу его немного многословным, и его, вероятно, можно сократить):
@RunWith(classOf[JUnitSuiteRunner])
class AuthorisationParserRunAsTest extends JUnit4(AuthorisationParserSpec)
object AuthorisationParserSpec extends Specification {
...
}
Если IntelliJ не берет тесты автоматически, вы можете сделать следующее:
в конфигурации Run создайте конфигурацию ScalaTest run и настройте ее "тестовый вид" на "все в пакете" и ее "тестовый пакет" на пакет, содержащий ваши тесты.
ScalaTest и обзор по всем возможностям; я просто аннотировал все тестовые классы с
@RunWith(classOf[JUnitRunner])
немного поздно, но я столкнулся с той же проблемой ("пустой тестов") после зависания вокруг IDEA bug tracker я нашел решение для своего случая:
Мой scala
версия 2.9.0-1
и scala-test
версия 2.8.*
.
Он начал работать после обновления scala-test
до самой новой версии (такой же, как scala).
Я смог запустить тесты FunSuite в IntelliJ без каких-либо проблем. Однако при работе с тестами FlatSpec я обнаружил, что вам нужно щелкнуть правой кнопкой мыши или поместить курсор на фактическое определение тестового класса, если вы используете Ctrl+Shift+F10 (т. е. запустите все тесты), чтобы правильно выполнить все определенные тесты и избежать разочаровывающих ошибок "пустой набор тестов".
в случае, если это кому-то поможет-я попал в 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
}
}
я столкнулся с " пустым набором тестов."проблема при выполнении отдельных тестов в FlatSpec, а также. Я сузил первопричину до пробела в начале строки поведения.
Ex. В следующем коде первый тест будет запущен, а второй-нет (если выполняется отдельно). Это связано с наличием пробела в начале строки поведения "не выполняется". Если вы снимете его и запустите снова, он должен работать.
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.1 C
- Версия Scala: 2.11.8
- ScalaTest Версия: 3.0.1