Перейти к основному содержимому

Запуск тестовых случаев JUnit из командной строки

· 5 мин. чтения

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 .