Как запустить тест JUnit с терминала [duplicate]

Согласно документации Java, разработчики должны переопределять оба метода для достижения полностью работающего механизма равенства, и недостаточно просто реализовать метод equals () .

Если два объекта равны в соответствии с методом equals (Object), то вызов метода hashcode () для каждого из двух объектов должен приводить к одному и тому же целочисленному результату.

blockquote>

Переопределение equals () будет служить вашим потребностям при проверке равенства двух нормальных объектов, а также будет работать с вами при поиске элемента внутри списка .

Однако при работе с структурами хэширования вы будете работать: HashSet, HashMap, HashTable ..

В этом учебном пособии подробно описаны примеры, почему необходимо всегда переопределять equals () и hashcode () вместе. Это стоит прочитать, проверьте это.

265
задан Willi Mentzel 11 June 2015 в 14:51
поделиться

11 ответов

Если ваш проект основан на Maven, вы можете запустить все тестовые методы из тестового класса CustomTest, который принадлежит модулю 'my-module', используя следующую команду:

mvn clean test -pl :my-module -Dtest=CustomTest

Или запустить только 1 тест -method myMethod из тестового класса CustomTest, используя следующую команду:

mvn clean test -pl :my-module -Dtest=CustomTest#myMethod

Для этой способности вам нужен Maven Surefire Plugin v.2.7.3 + и Junit 4. Подробнее здесь: http: //maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html

4
ответ дан Andrei Punko 25 August 2018 в 21:01
поделиться

Если вы проецируете ant на основе, вы должны иметь возможность сделать что-то подобное с консоли:

ant test

Если это не работает, но ваш проект основан на муравьях, вы можете запустите ant -p, чтобы указать основные цели проекта.

-2
ответ дан cherouvim 25 August 2018 в 21:01
поделиться

Лично я хотел бы использовать Maven surefire JUnit runner для этого.

4
ответ дан djangofan 25 August 2018 в 21:01
поделиться

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

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

< / blockquote>

Ссылка: junit FAQ

22
ответ дан Gishu 25 August 2018 в 21:01
поделиться

На самом деле вы также можете сделать тест Junit исполняемым банком и вызвать runnable jar как java -jar
5
ответ дан Indraneel 25 August 2018 в 21:01
поделиться

Для 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 ...

Надеюсь, что это поможет. Записать тесты! : -)

229
ответ дан lzap 25 August 2018 в 21:01
поделиться

В окнах это

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 ... и т. д., если у вас более одного теста classes.

-cp означает путь к классу, а точка (.) представляет существующий путь к классам, в то время как semi colour (;) добавляет дополнительную указанную jar в путь к классам, как в приведенном выше примере junit-4.8.2 теперь доступный в classpath для выполнения класса JUnitCore, который мы использовали для выполнения наших тестовых классов.

Выше инструкции командной строки позволяет выполнить тесты junit (версия 4+) из командной строки (например, MSDos).

Примечание: JUnitCore - это фасад для выполнения тестов юнита, этот фасад включен в 4+ версии junit.

12
ответ дан Max 25 August 2018 в 21:01
поделиться

В качестве альтернативы вы можете использовать следующие методы в классе JunitCore http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html

run ( с запросом, классами классов и Runner) или runClasses из вашего java-файла.

0
ответ дан Raghu K Nair 25 August 2018 в 21:01
поделиться

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

java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
48
ответ дан rand_acs 25 August 2018 в 21:01
поделиться

С 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]
18
ответ дан Stefan van den Akker 25 August 2018 в 21:01
поделиться

Maven way

Если вы используете 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 way

Если вы используете 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

Ant way

После того, как вы установили файл сборки build 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
64
ответ дан Yuci 25 August 2018 в 21:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: