커맨드 라인에서 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)으로 분리해야합니다. 환경에 따라 다릅니다.
편집 : 예를 들어 현재 디렉토리를 추가했습니다. 환경 및 애플리케이션 빌드 방법에 따라 다릅니다 (bin / 또는 build / 또는 my_application.jar 등일 수 있음). 참고 Java 6 이상은 클래스 경로에서 글로브를 지원합니다.
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-reports 폴더의 보고서 파일 대신 콘솔에서 스택 추적 (있는 경우)을 보려면 사용자 특성 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와 같은 옵션을 고려할 수 있습니다.
예를 들어 정보 로깅 수준 --info로 Gradle을 실행하면 실행중인 각 테스트의 결과가 표시됩니다. 예외가 있으면 스택 추적을 표시하여 문제가 무엇인지 지적합니다.
gradle test --info
전체 테스트 결과를 보려면 브라우저에서 보고서를 열 수 있습니다 (예 : 우분투에서 Chrome을 사용하여 보고서 열기).
google-chrome build/reports/tests/index.html
개미 길
Ant 빌드 파일 build.xml을 설정하면 다음과 같이 명령 행에서 JUnit 테스트 케이스를 실행할 수 있습니다.
ant -f build.xml <Your JUnit test target name>
Ant 빌드 파일에서 JUnit 테스트를 구성하는 방법에 대한 자세한 내용을 보려면 아래 링크를 따르십시오. 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 [테스트 클래스 이름]
참조 : junit 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]
창문에서는
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을 클래스 경로에 추가합니다. 여기서 우리는 테스트 클래스를 실행하는 데 사용했습니다.
위의 명령 줄 문은 명령 프롬프트 (예 : MSDos)에서 junit (버전 4+) 테스트를 실행하는 데 도움이됩니다.
참고 : JUnitCore는 junit 테스트를 실행하기위한 파사드이며이 파사드는 4+ 버전의 junit에 포함되어 있습니다.
프로젝트가 Maven 기반 인 경우 다음 명령을 사용하여 'my-module'모듈에 속하는 테스트 클래스 CustomTest에서 모든 테스트 방법을 실행할 수 있습니다.
mvn clean test -pl :my-module -Dtest=CustomTest
또는 다음 명령을 사용하여 테스트 클래스 CustomTest에서 테스트 메소드 myMethod를 1 개만 실행하십시오.
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 에서 다음 메소드를 사용할 수 있습니다.
java 파일에서 (Request, Class 클래스 및 Runner 사용) 또는 runClasses를 실행하십시오.
프로젝트가 개미 기반 인 경우 콘솔에서 다음과 같은 작업을 수행 할 수 있어야합니다.
ant test
이것이 작동하지 않지만 여전히 프로젝트가 개미 기반 ant -p
인 경우 프로젝트의 주요 대상을 나열하기 위해 실행할 수 있습니다 .