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

Есть ли инструмент Scala unit test, который хорошо интегрируется с Maven?

Моя компания начинает писать код с помощью Scala. Меня перевели в этот проект, и я большой поклонник TDD, поэтому я хотел бы получить модульную систему тестирования. Однако система сборки, которую мы используем для этого проекта, - это Maven, и это не изменится по целому ряду причин.

Я просмотрел как ScalaTest, так и ScalaCheck, и у обоих, похоже, есть проблемы с интеграцией Maven. Различные сообщения на форуме, которые я видел в результатах поиска Google, показывают, что некоторые из сьютов, включенных в ScalaTest, не будут запускаться под maven- scala -plugin, и я вообще не смог найти какую-либо информацию о запуске ScalaCheck в Цель теста Maven.

Может ли кто-нибудь указать мне на то, чтобы заставить ScalaTest/ScalaCheck надежно работать с Maven или предложить альтернативу?

4b9b3361

Ответ 1

Вы также можете использовать specs, чтобы объявить спецификации и выполнить их как тесты JUnit с Maven. Это прекрасно работает, как описано здесь: http://code.google.com/p/specs/wiki/RunningSpecs#Run_your_specification_with_JUnit4

Если у вас есть какие-либо проблемы с этим, отправьте почту в списке рассылки пользователей.

Спасибо,

Эрик.

PS: вы также можете использовать ScalaTest и ScalaCheck из спецификаций, если вы хотите получить доступ к некоторым из этих функций библиотек.

Ответ 2

ScalaTest 1.0 имеет:

org.scalatest.junit.JUnitRunner

Вы можете использовать его с аннотацией JUnit RunWith. Мейвену нравится это. Там также плагин Maven теперь для ScalaTest, написанный Jon-Anders Teigen. Прямо сейчас вам нужно взять его с страницы Jonath Anders github:

http://github.com/teigen/maven-scalatest-plugin

Вскоре мы планируем развернуть его "официально" в репозитории Maven.

Плагин официально развернут в Maven Central.

Ответ 3

Я понимаю, что это ответ, но самый полный ответ, который я нашел для использования Scalatest с Maven, особенно через командную строку mvn test, http://jpz-log.info/archives/2009/09/29/scalatest-in-maven/

Я добавляю эту информацию здесь, потому что, когда поисковые запросы для настроек Scalatest и Maven задают этот вопрос, он очень хорошо оценивает результаты, но не дает удовлетворительного (для моего случая) ответа.

В принципе:

  • добавьте scala к вашему pom, как обычно, а также скалят (версия > 1.0) и junit
  • добавить @RunWith(classOf[JUnitRunner]) как аннотацию класса по вашим спецификациям
  • сообщите maven-surefire-plugin, чтобы включить **/*Spec.class

В ваших файлах Spec.scala:

import org.scalatest.junit.JUnitRunner
import org.junit.runner.RunWith
import org.scalatest.Spec
import org.scalatest.matchers.ShouldMatchers

@RunWith(classOf[JUnitRunner])
class AutomatonSpec extends Spec with ShouldMatchers {
    (...)
}

В вашем pom.xml:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <includes>
          <include>**/*Spec.class</include>
        </includes>
      </configuration>
    </plugin>
  </plugins>
</build>

Ответ 4

Чтобы ответить на мой собственный вопрос: похоже, что пакет Junit4Runner расположенный здесь, обеспечивает необходимый клей для интеграции полной функциональности ScalaTest с Maven. Кроме того, по слухам, следующая версия ScalaTest будет включать в себя что-то вроде этого.

Ответ 5

Для Scala есть полезный unit test костюм: ScalaCheck ScalaCheck - это реализация библиотеки QuickCheck для Haskell Scala. Он пытается максимально упростить внешний вид QuickCheck, будучи открытым для улучшений и расширений, которые могут облегчить задачу рандомизированного тестирования программ Scala на основе свойств. Команда: Рикард Нильссон. Требуется: Scala 2.6.0 или новее. Документация: руководство пользователя.

репетиции Rehersal - это тестовая среда для Scala, предназначенная как простая в использовании замена SUnit в стандартной библиотеке. Команда: Рафаэль Кон.

ScalaTest ScalaTest - бесплатный инструмент тестирования с открытым исходным кодом для Scala и Java-программистов. Он написан в Scala и позволяет вам писать тесты в Scala для тестирования либо Scala, либо Java-кода. Он выпущен под лицензией Apache 2.0 с открытым исходным кодом. Команда: Билл Веннерс.

Scala Характеристики Спецификации - это структура, управляемая поведением, которая обеспечивает: простой и типизированный язык для создания спецификаций; помощники для указания свойств кода; интеграция с JUnit, Scalacheck и jMock2; шаблон-подобный соединитель; возможности структурирования и составления спецификаций, а также повторное использование примеров по спецификациям; таблицы данных для группировки сразу нескольких примеров данных. Команда: Эрик Торребор, Дэвид Бернард, Хорхе Ортис.

От: http://www.scala-lang.org/node/1209#program_testing