Я хотів би запустити тестові випадки JUnit з командного рядка. Як я можу це зробити?
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
працював на мене. Зверніть увагу на закінчувальну крапку - це важливо!
Я хотів би запустити тестові випадки JUnit з командного рядка. Як я можу це зробити?
javac -cp "junit-4.12.jar; hamcrest-core-1.3.jar;." Tests.java
працював на мене. Зверніть увагу на закінчувальну крапку - це важливо!
Відповіді:
Для JUnit 5.x це:
java -jar junit-platform-console-standalone-<version>.jar <Options>
Знайдіть короткий підсумок за адресою https://stackoverflow.com/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-файлів або каталогів з файлами вашого класу на класний шлях і розділити його комами з комою (Windows) або двокрапками (UNIX / Linux). Це залежить від вашого оточення.
Редагувати: Я додав поточний каталог як приклад. Залежить від вашого середовища та того, як ви будуєте свою програму (може бути бін / або збірка / або навіть my_application.jar тощо). Примітка. Java 6+ підтримує глобуси на classpath, ви можете:
java -cp lib/*.jar:/usr/share/java/junit.jar ...
Сподіваюся, це допомагає. Пишіть тести! :-)
Спосібний шлях
Якщо ви використовуєте Maven, ви можете запустити наступну команду для запуску всіх тестових випадків:
mvn clean test
Або ви можете запустити певний тест, як показано нижче
mvn clean test -Dtest=your.package.TestClassName
mvn clean test -Dtest=your.package.TestClassName#particularMethod
Якщо ви хочете побачити трасування стека (якщо він є) на консолі замість файлів звітів у папці target \ surefire-messages, встановіть властивість користувача 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
Мурашний шлях
Після налаштування файлу Ant 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
Відповідь, яку дав @lzap, є хорошим рішенням. Однак я хотів би додати, що ви повинні додати. до шляху до класу, так що ваш поточний каталог не залишається осторонь, в результаті чого ваші власні класи будуть залишені. Це траплялося зі мною на деяких платформах. Отже, оновлена версія для JUnit 4.x буде:
java -cp .:/usr/share/java/junit.jar org.junit.runner.JUnitCore [test class name]
Переконайтеся, що JUnit.jar знаходиться у вашому класі, а потім виклик бігу командного рядка з консолі
java org.junit.runner.JUnitCore [назва класу тесту]
Довідка: FAQ про Джуніт
З 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]
java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore [test class name]
У windows це
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 позначає шлях до класу, а крапка (.) представляє існуючий класний шлях, тоді як напівкрапка (;) додає додатковий заданий jar до classpath, як у наведеному вище прикладі junit-4.8.2 тепер доступний у classpath для виконання класу JUnitCore, який тут ми використовували для виконання наших тестових класів.
Наведений вище командний рядок допомагає виконувати тести junit (версія 4+) з командного рядка (тобто MSDos).
Примітка: JUnitCore - це фасад для виконання тестів на юніт, цей фасад входить у 4+ версії junit.
Насправді ви також можете зробити тест на Джуніт непрацюючим баночкою і назвати баночку, що працює, як java -jar
Якщо ваш проект на базі Maven, ви можете запустити всі методи тестування з тестового класу CustomTest, який належить до модуля 'my-module', використовуючи наступну команду:
mvn clean test -pl :my-module -Dtest=CustomTest
Або запустіть лише 1 тестовий метод 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
Крім того, ви можете використовувати наступні методи у класі JunitCore http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html
запустити (із запитом, класи класів та Runner) або runClasses з вашого файлу Java.
Якщо у вас проект на основі мурашок, ви повинні мати можливість зробити щось подібне з консолі:
ant test
Якщо це не працює, але все ж ваш проект базується на мурашниках, ви можете запустити ant -p
список основних цілей проекту.