Как запустить тестовые примеры JUnit из командной строки
Я хотел бы запустить тестовые примеры JUnit из командной строки.
Как я могу это сделать?
Ответы
Ответ 1
Для 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 или каталогов с вашими файлами классов в путь к классам и разделить их с точками с запятой (Windows) или двоеточиями (UNIX/Linux). Это зависит от вашей среды.
Изменить: в качестве примера я добавил текущий каталог. Зависит от вашей среды и того, как вы создаете приложение (может быть bin/or build/or even my_application.jar и т.д.). Примечание. Java 6+ поддерживает globs в пути к классам, вы можете:
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
Если вы хотите увидеть трассировку стека (если есть) в консоли вместо файлов отчетов в папке target\surefire-reports, установите для свойства user surefire.useFile значение false. Например:
mvn clean test -Dtest=your.package.TestClassName -Dsurefire.useFile=false
Колышом
Если вы используете Gradle, вы можете запустить следующую команду для запуска всех ваших тестовых случаев:
gradle test
Или вы можете запустить конкретный тест, как показано ниже
gradle test --tests your.package.TestClassName
gradle test --tests your.package.TestClassName.particularMethod
Если вам нужна дополнительная информация, вы можете рассмотреть такие параметры, как --stacktrace или --info, или --debug.
Например, когда вы запускаете Gradle с уровнем регистрации информации --info, он покажет вам результат каждого теста во время работы. Если есть какое-либо исключение, он покажет вам трассировку стека, указав, в чем проблема.
gradle test --info
Если вы хотите просмотреть общие результаты теста, вы можете открыть отчет в браузере, например (Откройте его с помощью Google Chrome в Ubuntu):
google-chrome build/reports/tests/index.html
Муравей
После того, как вы создали файл сборки build build.xml Ant, вы можете запустить тестовые примеры 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 FAQ
Ответ 5
С JUnit 4.12 для меня не работало следующее:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
По-видимому, начиная с JUnit 4.11, вы также должны включить hamcrest-core.jar
в свой путь к классам:
java -cp .:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar org.junit.runner.JUnitCore [test class name]
Ответ 6
В окнах это
java -cp .;/path/junit.jar org.junit.runner.JUnitCore TestClass
[имя тестового класса без расширения .class]
например:
c:\>java -cp .;f:/libraries/junit-4.8.2 org.junit.runner.JUnitCore TestSample1 TestSample2 ...
и т.д., если имеется более одного тестового класса.
-cp означает путь к классу, а точка (.) представляет существующий путь к классам, в то время как semi colour (;) добавляет дополнительную указанную jar к пути к классам, как в примере выше junit-4.8.2 теперь доступен в classpath для выполнения класса JUnitCore, который мы использовали для выполнения наших тестовых классов.
Вышеуказанный оператор командной строки позволяет выполнить тесты junit (версия 4+) из командной строки (i-e MSDos).
Примечание. JUnitCore - это фасад для выполнения тестов юнита, этот фасад включен в 4+ версии junit.
Ответ 7
На самом деле вы также можете сделать тест Junit исполняемым банком и вызвать runnable jar as
java -jar
Ответ 8
Лично я хотел бы использовать Maven surefire JUnit runner для этого.
Ответ 9
Если ваш проект основан на Maven, вы можете запустить все тестовые методы из тестового класса CustomTest, который принадлежит модулю 'my-module', используя следующую команду:
mvn clean test -pl :my-module -Dtest=CustomTest
Или запустите только один тестовый метод myMethod из тестового класса CustomTest, используя следующую команду:
mvn clean test -pl :my-module -Dtest=CustomTest#myMethod
Для этой способности вам нужен плагин Maven Surefire v.2.7.3 + и Junit 4.
Подробнее здесь: http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html
Ответ 10
В качестве альтернативы вы можете использовать следующие методы в классе JunitCore http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html
run (с запросом, классами классов и Runner) или runClasses из вашего java файла.
Ответ 11
Если вы создаете проект на основе ant, вы должны иметь возможность сделать что-то вроде этого с консоли:
ant test
Если это не работает, но ваш проект основан на ant, вы можете запустить ant -p
, чтобы отобразить основные цели проекта.