Могу ли я запустить JUnit 4 для проверки кода Scala из командной строки? - PullRequest
1 голос
/ 07 октября 2009

Если да, то как? Я еще не сталкивался с правильным заклинанием.

Если нет, каков наилучший подход к модульному тестированию кода Scala из командной строки? (Я троглодит; я использую IDE, когда мне нужно, но я предпочитаю поиграть, используя Emacs и инструменты командной строки).

Ответы [ 3 ]

2 голосов
/ 07 октября 2009

Поскольку скомпилированный Scala представляет собой просто байт-код Java (хорошо, с гораздо большим количеством символов $ в именах классов), это будет точно так же, как при выполнении тестов JUnit 4 для кода Java, то есть из командной строки, передавая тестовые классы в качестве аргументов. до org.junit.runner.JUnitCore. Поскольку JUnit 4 «из коробки» поддерживает только командную строку, вам даже не нужно беспокоиться о подавлении основанных на графическом интерфейсе исполнителей.

Тем не менее, конкретные тестовые среды Scala (ScalaTest, ScalaCheck ) действительно обеспечивают более идиоматический подход к тестированию кода, написанного на этом более функциональном языке.

1 голос
/ 07 октября 2009

Вас может заинтересовать ScalaTest .

ScalaTest - бесплатный, с открытым исходным кодом инструмент тестирования для Scala и Java программисты. Это написано в Scala, и позволяет писать тесты в Scala для тестирования Scala или Java код. Выпущено под Apache 2.0 с открытым исходным кодом. Потому что разные разработчики берут разные подходы к созданию программное обеспечение, нет единого подхода к тестирование подходит всем. В В свете этой реальности ScalaTest является предназначен для облегчения различных стили тестирования.

См. Документацию Runner для запуска тестов из командной строки.

0 голосов
/ 07 октября 2009

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

SBT .

SBT - это инструмент для сборки, такой как Ant, Maven или Make. Один интересный аспект, который будет иметь для нас значение, заключается в том, что он основан на Scala. Я не имею в виду, что у него есть специальные возможности для обработки кода Scala или написания его на Scala, хотя обе эти вещи верны. Я имею в виду, что он использует Scala-код вместо XML, такого как Maven и Ant, в качестве источника конфигурации.

Это само по себе интересно. Только сегодня я увидел замечательный пример отделения тестовых источников от программных источников, который я публикую здесь только потому, что это так здорово.

// on this project we keep all sources, whether they be Scala or Java, and whether they be
// regular classes or test classes, in a single src tree.
override def mainScalaSourcePath = "src"
override def mainJavaSourcePath = "src"
override def testScalaSourcePath = "src"
override def testJavaSourcePath = "src"
override def mainResourcesPath = "resources"

// distinguish main sources from test sources
def testSourceFilter =
  "Test*.scala" | "Test*.java" |
  "AbstractTest*.scala" | "AbstractTest*.java" |
  "ScalaTestRunner.scala"
def mainSourceFilter = ("*.scala" | "*.java") - testSourceFilter
override def mainSources = descendents(mainSourceRoots, mainSourceFilter)
override def testSources = descendents(testSourceRoots, testSourceFilter)

Но что делает его еще более интересным, так это то, что SBT работает как консоль. Вы запускаете «sbt» и попадаете в консольный интерфейс, из которого вы можете вводить команды, например, «test», и запускать ваши тесты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...