Programing

명령 행에서 JUnit 테스트 케이스를 실행하는 방법

lottogame 2020. 3. 9. 08:02
반응형

명령 행에서 JUnit 테스트 케이스를 실행하는 방법


커맨드 라인에서 JUnit 테스트 케이스를 실행하고 싶습니다. 어떻게해야합니까?


들어 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 .;/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 버전에 포함되어 있습니다.


실제로 Junit 테스트를 실행 가능한 Jar로 만들고 실행 가능한 Jar를 java -jar로 호출 할 수 있습니다


프로젝트가 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)입니다.


개인적으로 Maven surefire JUnit 러너를 사용하여 그렇게 할 것입니다.


프로젝트가 개미 기반 인 경우 콘솔에서 다음과 같은 작업을 수행 할 수 있어야합니다.

ant test

이것이 작동하지 않지만 여전히 프로젝트가 개미 기반 ant -p인 경우 프로젝트의 주요 대상을 나열하기 위해 실행할 수 있습니다 .


또는 JunitCore 클래스 http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html 에서 다음 메소드를 사용할 수 있습니다.

java 파일에서 (Request, Class 클래스 및 Runner 사용) 또는 runClasses를 실행하십시오.

참고 URL : https://stackoverflow.com/questions/2235276/how-to-run-junit-test-cases-from-the-command-line

반응형