Тестирование с SBT
Независимо от того, какую версию SBT вы хотите использовать, в основном вам необходимо выполнить следующие шаги:
- Включите желаемую среду тестирования в качестве тест-зависимости в конфигурацию вашего проекта.
- Создайте выделенную папку тестирования в вашем дереве исходных текстов, обычно src / test / scala , если она еще не существует.
- Как всегда: напишите свои тесты, спецификации ...
Эти базовые шаги идентичны для ветви sbt 0.7 (это из google-кода) и текущей ветви sbt 0.10 (теперь разработанной и документированной на github). Однако существуют небольшие различия в том, как определять зависимости тестирования, поскольку 0.10 предоставляет новый метод быстрой настройки, отсутствующий в 0.7.
Определение зависимости для SBT 0,7
Вот как вы создаете базовый тест (на основе scalacheck) с sbt 0.7. Создайте новый проект sbt 0.7, вызвав sbt в пустой папке. Перейдите в автоматически созданную папку project и создайте новую папку сборки
# cd [your-project-root]/project
# mkdir build
перейдите во вновь созданную папку сборки и создайте свой первый файл сборки проекта Project.scala со следующим содержимым:
class Project(info: ProjectInfo) extends DefaultProject(info) {
val scalacheck = "org.scala-tools.testing" %% "scalacheck" % "1.9" % "test"
}
Поскольку для версии 0.7 папка тестирования создается автоматически, вы можете сразу же написать свой первый тест. Перейдите к пункту «Создайте простой тест».
Определение зависимости для SBT 0.10
Для 0.10 можно использовать консоль sbt для добавления зависимости. Просто запустите sbt в каталоге вашего проекта и введите следующие команды:
set libraryDependencies + = "org.scala-tools.testing" %% "scalacheck"% "1.9"% "test"
сохранение сеанса
Затем вы можете закрыть консоль sbt и просмотреть файл своих проектов build.sbt . Как вы можете легко заметить, вышеупомянутая строка libraryDependencies была добавлена в ваши проекты для быстрой настройки.
Поскольку 0.10 не создает исходные папки автоматически. Вы должны создать папку тестирования самостоятельно:
# cd [project-root]
# mkdir -p src/test/scala
Это все, что нужно, чтобы начать работу с 0.10. Более того, документация о тестировании с 0.10 гораздо более подробная, чем старая. Для получения дополнительной информации см. страницу тестирования wiki .
Создание простого теста скалярной проверки
Создайте следующий тестовый файл src / test / scala / StringSpecification.scala (взято с домашней страницы scalacheck):
import org.scalacheck._
object StringSpecification extends Properties("String") {
property("startsWith") = Prop.forAll((a: String, b: String) => (a+b).startsWith(a))
property("endsWith") = Prop.forAll((a: String, b: String) => (a+b).endsWith(b))
// Is this really always true?
property("concat") = Prop.forAll((a: String, b: String) =>
(a+b).length > a.length && (a+b).length > b.length
)
property("substring") = Prop.forAll((a: String, b: String) =>
(a+b).substring(a.length) == b
)
property("substring") = Prop.forAll((a: String, b: String, c: String) =>
(a+b+c).substring(a.length, a.length+b.length) == b
)
}
Как уже указывалось, эта базовая проверка не будет выполнена для спецификации "concat", но это основные шаги тестирования, необходимые для начала тестирования и sbt. Просто измените включенную зависимость, если вы хотите использовать другую среду тестирования.
Запустите свои тесты
Чтобы запустить тест, откройте консоль sbt и введите
> test
Это запустит все тесты, присутствующие в вашем дереве src / test , независимо от того, являются ли они тестами на основе Java или scala. Таким образом, вы можете легко использовать существующие тестовые модули Java и постепенно конвертировать их в scala.