Как запустить один тест в scalatest от maven


Я не нашел каких-либо документации о том, как это сделать. Для JUnit эквивалентом будет:

mvn -Dtest=org.apache.spark.streaming.InputStreamSuite test
3 12

3 ответа:

Я нашел ответ отсюда, и он работает: (https://groups.google.com/forum/#! тема / scalatest-пользователи/Rr0gy61dg-0)

Запустите тест 'a pending test' в HelloSuite, и все тесты в HelloWordSpec:

 mvn test -Dsuites='org.example.
HelloSuite @a pending test, org.example.HelloWordSpec' 
  • Выполните все тесты в HelloSuite, содержащие 'hello':

    mvn test -Dsuites='org.example.HelloSuite hello'

Подробнее: http://scalatest.org/user_guide/using_the_scalatest_maven_plugin

Обратите внимание, что если у вас есть некоторые тесты Java в том же модуле, как и большая часть spark, вам нужно отключить их-что вы можете сделать, сказав surefire запустить тест, которого нет

Вот тест, который я только что запустил

mvn test -Dtest=moo -DwildcardSuites=org.apache.spark.deploy.yarn.ClientSuite

, который пропускает тест java и запускает только scala.

Одна вещь, которую scalatest, кажется, не делает, - это позволяет вам выполнить один тест в наборе, как maven surefire. Это не идеально, если у вас есть один провальный тест в большом комплект.

[коррекция 2016-08-22 : похоже, вы можете попросить конкретный набор по имени; посмотрите на другие ответы ниже. Счастлив быть неправым].

Нашел ответ: это

-DwildcardSuites

Итак, вот пример командной строки:

mvn -pl streaming -DwildcardSuites=org.apache.spark.streaming.InputStreamSuite test

Обновить новые версии scalatest использовать

 -Dsuites

Таким образом, синтаксис будет следующим:

mvn -pl streaming -Dsuites=org.apache.spark.streaming.InputStreamSuite test