Вопрос-ответ

How to run JUnit test cases from the command line

Как запускать тестовые примеры JUnit из командной строки

Я хотел бы запустить тестовые примеры JUnit из командной строки. Как я могу это сделать?

Переведено автоматически
Ответ 1

Для JUnit 5.x это:

java -jar junit-platform-console-standalone-<version>.jar <Options>

Найдите краткое описание по адресу https://javalang.ru/a/52373592/1431016 и полную информацию по адресу https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher

Для JUnit 4.X это действительно:

java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]

Но если вы используете JUnit 3.X, обратите внимание, что имя класса отличается:

java -cp .:/usr/share/java/junit.jar junit.textui.TestRunner [test class name]

Возможно, вам потребуется добавить больше JAR или каталогов с файлами вашего класса в classpath и отделить их точкой с запятой (Windows) или двоеточием (UNIX / Linux). Это зависит от вашей среды.

Редактировать: Я добавил текущий каталог в качестве примера. Зависит от вашей среды и того, как вы создаете свое приложение (может быть bin / или build / или даже my_application.jar etc). Обратите внимание, что Java 6+ поддерживает глобусы в classpath, вы можете сделать:

java -cp lib/*.jar:/usr/share/java/junit.jar ...

Пишите тесты! :-)

Ответ 2

Способ Maven

Если вы используете Maven, вы можете запустить следующую команду для запуска всех ваших тестовых примеров:

mvn clean test

Или вы можете запустить конкретный тест, как показано ниже

mvn clean test -Dtest=your.package.TestClassName
mvn clean test -Dtest=your.package.TestClassName#particularMethod

Если вы хотите видеть трассировку стека (если она есть) в консоли вместо файлов отчетов в целевой папке\surefire-reports, установите для пользовательского свойства surefire.useFile значение false . Например:

mvn clean test -Dtest=your.package.TestClassName -Dsurefire.useFile=false

Способ Gradle

Если вы используете Gradle, вы можете запустить следующую команду для запуска всех ваших тестовых примеров:

gradle test

Или вы можете запустить конкретный тест, как показано ниже

gradle test --tests your.package.TestClassName
gradle test --tests your.package.TestClassName.particularMethod

Если вам нужна дополнительная информация, вы можете рассмотреть такие варианты, как --stacktrace, или --info, или --debug.

Например, когда вы запускаете Gradle с уровнем ведения журнала info --info , он покажет вам результат каждого теста во время их выполнения. Если возникнет какое-либо исключение, оно покажет вам трассировку стека, указывающую, в чем проблема.

gradle test --info

Если вы хотите увидеть общие результаты тестирования, вы можете открыть отчет, например, в браузере (откройте его с помощью Google Chrome в Ubuntu).:

google-chrome build/reports/tests/index.html

Муравьиный способ

После настройки файла сборки Ant build.xml вы можете запускать тестовые примеры JUnit из командной строки, как показано ниже:

ant -f build.xml <Your JUnit test target name>

Вы можете перейти по ссылке ниже, чтобы узнать больше о том, как настроить тесты JUnit в файле сборки Ant:
https://ant.apache.org/manual/Tasks/junit.html

Обычный способ

Если вы не используете Maven, Gradle или Ant, вы можете следовать следующему способу:

Прежде всего, вам нужно скомпилировать свои тестовые примеры. Например (в Linux):

javac -d /absolute/path/for/compiled/classes -cp /absolute/path/to/junit-4.12.jar /absolute/path/to/TestClassName.java

Затем запустите свои тестовые примеры. Например:

java -cp /absolute/path/for/compiled/classes:/absolute/path/to/junit-4.12.jar:/absolute/path/to/hamcrest-core-1.3.jar org.junit.runner.JUnitCore your.package.TestClassName
Ответ 3

Ответ, который дал @lzap, является хорошим решением. Однако я хотел бы добавить, что вам следует добавить . в путь к классу, чтобы ваш текущий каталог не был пропущен, в результате чего ваши собственные классы не будут пропущены. Это случалось со мной на некоторых платформах. Таким образом, обновленная версия для JUnit 4.x будет:

java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Ответ 4

Убедитесь, что это JUnit.jar указано в вашем пути к классу, затем вызовите средство запуска командной строки из консоли


java org.junit.runner.JUnitCore [название тестового класса]


Ссылка: часто задаваемые вопросы по junit

java unit-testing junit