1. Обзор
В этом руководстве мы поймем , как запускать тесты JUnit 5 прямо из командной строки .
2. Тестовые сценарии
Ранее мы рассмотрели, как запустить тест JUnit программно . Для наших примеров мы будем использовать те же тесты JUnit:
public class FirstUnitTest {
@Test
public void whenThis_thenThat() {
assertTrue(true);
}
@Test
public void whenSomething_thenSomething() {
assertTrue(true);
}
@Test
public void whenSomethingElse_thenSomethingElse() {
assertTrue(true);
}
}
public class SecondUnitTest {
@Test
public void whenSomething_thenSomething() {
assertTrue(true);
}
@Test
public void whensomethingElse_thenSomethingElse() {
assertTrue(true);
}
}
3. Запуск теста JUnit 5
Мы можем запустить тестовый пример JUnit 5 с помощью средства запуска консоли JUnit . Исполняемый файл для этого jar-файла можно загрузить с Maven Central в каталоге junit-platform-console-standalone
.
Также нам понадобится каталог, в котором будут храниться все наши скомпилированные классы:
$ mkdir target
Давайте посмотрим, как мы можем запускать разные тестовые случаи с помощью средства запуска консоли.
3.1. Запустите один тестовый класс
Прежде чем мы запустим тестовый класс, давайте скомпилируем его:
$ javac -d target -cp target:junit-platform-console-standalone-1.7.2.jar src/test/java/com/foreach/commandline/FirstUnitTest.java
Теперь мы запустим скомпилированный тестовый класс с помощью средства запуска консоли Junit:
$ java -jar junit-platform-console-standalone-1.7.2.jar --class-path target --select-class com.foreach.commandline.FirstUnitTest
Это даст нам результаты тестового запуска:
Test run finished after 60 ms
[ 3 containers found ]
[ 0 containers skipped ]
[ 3 containers started ]
[ 0 containers aborted ]
[ 3 containers successful ]
[ 0 containers failed ]
[ 3 tests found ]
[ 0 tests skipped ]
[ 3 tests started ]
[ 0 tests aborted ]
[ 3 tests successful ]
[ 0 tests failed ]
3.2. Запустите несколько тестовых классов
Опять же, давайте скомпилируем тестовые классы, которые мы хотим запустить:
$ javac -d target -cp target:junit-platform-console-standalone-1.7.2.jar src/test/java/com/foreach/commandline/FirstUnitTest.java src/test/java/com/foreach/commandline/SecondUnitTest.java
Теперь мы запустим скомпилированные тестовые классы с помощью средства запуска консоли:
$ java -jar junit-platform-console-standalone-1.7.2.jar --class-path target --select-class com.foreach.commandline.FirstUnitTest --select-class com.foreach.commandline.SecondUnitTest
Наши результаты теперь показывают, что все пять методов тестирования были успешными:
Test run finished after 68 ms
...
[ 5 tests found ]
...
[ 5 tests successful ]
[ 0 tests failed ]
3.3. Запустите все тестовые классы в пакете
Чтобы запустить все тестовые классы в пакете, давайте скомпилируем все тестовые классы, присутствующие в нашем пакете:
$ javac -d target -cp target:junit-platform-console-standalone-1.7.2.jar src/test/java/com/foreach/commandline/*.java
Снова запустим скомпилированные тестовые классы нашего пакета:
$ java -jar junit-platform-console-standalone-1.7.2.jar --class-path target --select-package com.foreach.commandline
...
Test run finished after 68 ms
...
[ 5 tests found ]
...
[ 5 tests successful ]
[ 0 tests failed ]
3.4. Запустите все тестовые классы
Запустим все тестовые случаи:
$ java -jar junit-platform-console-standalone-1.7.2.jar --class-path target --scan-class-path
...
Test run finished after 68 ms
...
[ 5 tests found ]
...
[ 5 tests successful ]
[ 0 tests failed ]
4. Запуск JUnit с помощью Maven
Если мы используем Maven в качестве инструмента сборки , мы можем выполнять тестовые примеры непосредственно из командной строки.
4.1. Запуск одного тестового примера
Чтобы запустить один тестовый пример на консоли, давайте выполним следующую команду, указав имя тестового класса:
$ mvn test -Dtest=SecondUnitTest
Это даст нам результаты тестового запуска:
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.foreach.commandline.SecondUnitTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.211 s [INFO] Finished at: 2021-08-02T23:13:41+05:30
[INFO] ------------------------------------------------------------------------
4.2. Запустите несколько тестовых случаев
Чтобы запустить несколько тестовых случаев на консоли, давайте выполним команду, указав имена всех тестовых классов, которые мы хотим выполнить:
$ mvn test -Dtest=FirstUnitTest,SecondUnitTest
...
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.foreach.commandline.SecondUnitTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.foreach.commandline.FirstUnitTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.211 s
[INFO] Finished at: 2021-08-02T23:13:41+05:30
[INFO] ------------------------------------------------------------------------
4.3. Запустите все тестовые случаи в пакете
Чтобы запустить все тестовые случаи в пакете, на консоли нам нужно указать имя пакета как часть команды:
$ mvn test -Dtest="com.foreach.commandline.**"
...
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.foreach.commandline.SecondUnitTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.foreach.commandline.FirstUnitTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.211 s
[INFO] Finished at: 2021-08-02T23:13:41+05:30
[INFO] ------------------------------------------------------------------------
4.4. Запустить все тестовые случаи
Наконец, чтобы запустить все тестовые случаи с помощью Maven на консоли, мы просто выполняем mvn clean test
:
$ mvn clean test
...
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.foreach.commandline.SecondUnitTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.foreach.commandline.FirstUnitTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.211 s
[INFO] Finished at: 2021-08-02T23:13:41+05:30
[INFO] ------------------------------------------------------------------------
5. Вывод
В этой статье мы узнали, как запускать тесты JUnit непосредственно из командной строки, охватывая JUnit 5 как с Maven, так и без него.
Реализация приведенных здесь примеров доступна на GitHub .