728x90
반응형
질문 : Maven이 실행할 JUnit 테스트를 찾지 못함
나는 maven 프로그램을 가지고 있으며 잘 컴파일됩니다. mvn test
실행하면 테스트가 실행되지 않습니다 (TESTs 헤더 아래 There are no tests to run.
표시됨).
-X
와 함께 실행할 때 출력뿐만 아니라 아래에 포함시킬 매우 간단한 설정 으로이 문제를 재현했습니다.
단위 테스트는 eclipse에서 잘 실행됩니다 (기본 junit 패키지와 대신 maven에서 다운로드 한 junit.jar을 포함 할 때). 또한 mvn test-compile
은 테스트 클래스 아래에 클래스를 올바르게 만듭니다. OSX 10.6.7에서 Maven 3.0.2 및 java 1.6.0_24로 실행하고 있습니다.
다음은 디렉토리 구조입니다.
/my_program/pom.xml /my_program/src/main/java/ClassUnderTest.java /my_program/src/test/java/ClassUnderTestTests.java
pom.xml :
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>my_group</groupId> <artifactId>my_program</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>My Program</name> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> </project>
ClassUnderTest.java :
public class ClassUnderTest { public int functionUnderTest(int n) { return n; } }
ClassUnderTestTests.java :
import org.junit.Assert; import org.junit.Before; import org.junit.Test; public class ClassUnderTestTests { private ClassUnderTest o; @Before public void setUp() { o = new ClassUnderTest(); } @Test public void testFunctionUnderTest_testCase1() { Assert.assertEquals(1, o.functionUnderTest(1)); } @Test public void testFunctionUnderTest_testCase2() { Assert.assertEquals(2, o.functionUnderTest(2)); } }
mvn -X 테스트 종료 :
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-surefire-plugin:2.7.1:test from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-surefire-plugin:2.7.1, parent: sun.misc.Launcher$AppClassLoader@5224ee] [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-surefire-plugin:2.7.1:test' with basic configurator --> [DEBUG] (s) basedir = /Users/aaron/Programs/my_program [DEBUG] (s) childDelegation = false [DEBUG] (s) classesDirectory = /Users/aaron/Programs/my_program/target/classes [DEBUG] (s) disableXmlReport = false [DEBUG] (s) enableAssertions = true [DEBUG] (s) forkMode = once [DEBUG] (s) junitArtifactName = junit:junit [DEBUG] (s) localRepository = id: local url: file:///Users/aaron/.m2/repository/ layout: none [DEBUG] (f) parallelMavenExecution = false [DEBUG] (s) pluginArtifactMap = {org.apache.maven.plugins:maven-surefire-plugin=org.apache.maven.plugins:maven-surefire-plugin:maven-plugin:2.7.1:, org.apache.maven.surefire:surefire-booter=org.apache.maven.surefire:surefire-booter:jar:2.7.1:compile, org.apache.maven.surefire:surefire-api=org.apache.maven.surefire:surefire-api:jar:2.7.1:compile, org.apache.maven.surefire:maven-surefire-common=org.apache.maven.surefire:maven-surefire-common:jar:2.7.1:compile, org.apache.maven.shared:maven-common-artifact-filters=org.apache.maven.shared:maven-common-artifact-filters:jar:1.3:compile, org.codehaus.plexus:plexus-utils=org.codehaus.plexus:plexus-utils:jar:2.0.5:compile, junit:junit=junit:junit:jar:3.8.1:compile, org.apache.maven.reporting:maven-reporting-api=org.apache.maven.reporting:maven-reporting-api:jar:2.0.9:compile} [DEBUG] (s) printSummary = true [DEBUG] (s) project = MavenProject: my_group:my_program:1.0-SNAPSHOT @ /Users/aaron/Programs/my_program/pom.xml [DEBUG] (s) projectArtifactMap = {junit:junit=junit:junit:jar:4.8.1:test} [DEBUG] (s) redirectTestOutputToFile = false [DEBUG] (s) remoteRepositories = [ id: central url: http://repo1.maven.org/maven2 layout: default snapshots: [enabled => false, update => daily] releases: [enabled => true, update => never] ] [DEBUG] (s) reportFormat = brief [DEBUG] (s) reportsDirectory = /Users/aaron/Programs/my_program/target/surefire-reports [DEBUG] (s) session = org.apache.maven.execution.MavenSession@dfbb43 [DEBUG] (s) skip = false [DEBUG] (s) skipTests = false [DEBUG] (s) testClassesDirectory = /Users/aaron/Programs/my_program/target/test-classes [DEBUG] (s) testFailureIgnore = false [DEBUG] (s) testNGArtifactName = org.testng:testng [DEBUG] (s) testSourceDirectory = /Users/aaron/Programs/my_program/src/test/java [DEBUG] (s) trimStackTrace = true [DEBUG] (s) useFile = true [DEBUG] (s) useManifestOnlyJar = true [DEBUG] (s) workingDirectory = /Users/aaron/Programs/my_program [DEBUG] -- end configuration -- [INFO] Surefire report directory: /Users/aaron/Programs/my_program/target/surefire-reports [DEBUG] Setting system property [user.dir]=[/Users/aaron/Programs/my_program] [DEBUG] Setting system property [localRepository]=[/Users/aaron/.m2/repository] [DEBUG] Setting system property [basedir]=[/Users/aaron/Programs/my_program] [DEBUG] Using JVM: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java [DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10 for /Users/aaron/.m2/repository [DEBUG] dummy:dummy:jar:1.0 (selected for null) [DEBUG] org.apache.maven.surefire:surefire-booter:jar:2.7.1:compile (selected for compile) [DEBUG] org.apache.maven.surefire:surefire-api:jar:2.7.1:compile (selected for compile) [DEBUG] Adding to surefire booter test classpath: /Users/aaron/.m2/repository/org/apache/maven/surefire/surefire-booter/2.7.1/surefire-booter-2.7.1.jar Scope: compile [DEBUG] Adding to surefire booter test classpath: /Users/aaron/.m2/repository/org/apache/maven/surefire/surefire-api/2.7.1/surefire-api-2.7.1.jar Scope: compile [DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10 for /Users/aaron/.m2/repository [DEBUG] dummy:dummy:jar:1.0 (selected for null) [DEBUG] org.apache.maven.surefire:surefire-junit4:jar:2.7.1:test (selected for test) [DEBUG] org.apache.maven.surefire:surefire-api:jar:2.7.1:test (selected for test) [DEBUG] Adding to surefire test classpath: /Users/aaron/.m2/repository/org/apache/maven/surefire/surefire-junit4/2.7.1/surefire-junit4-2.7.1.jar Scope: test [DEBUG] Adding to surefire test classpath: /Users/aaron/.m2/repository/org/apache/maven/surefire/surefire-api/2.7.1/surefire-api-2.7.1.jar Scope: test [DEBUG] Test Classpath : [DEBUG] /Users/aaron/Programs/my_program/target/test-classes [DEBUG] /Users/aaron/Programs/my_program/target/classes [DEBUG] /Users/aaron/.m2/repository/junit/junit/4.8.1/junit-4.8.1.jar [DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10 for /Users/aaron/.m2/repository [DEBUG] dummy:dummy:jar:1.0 (selected for null) [DEBUG] org.apache.maven.surefire:surefire-booter:jar:2.7.1:compile (selected for compile) [DEBUG] org.apache.maven.surefire:surefire-api:jar:2.7.1:compile (selected for compile) [DEBUG] Adding to surefire booter test classpath: /Users/aaron/.m2/repository/org/apache/maven/surefire/surefire-booter/2.7.1/surefire-booter-2.7.1.jar Scope: compile [DEBUG] Adding to surefire booter test classpath: /Users/aaron/.m2/repository/org/apache/maven/surefire/surefire-api/2.7.1/surefire-api-2.7.1.jar Scope: compile Forking command line: /bin/sh -c cd /Users/aaron/Programs/my_program && /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -jar /Users/aaron/Programs/my_program/target/surefire/surefirebooter6118081963679415631.jar /Users/aaron/Programs/my_program/target/surefire/surefire4887918564882595612tmp /Users/aaron/Programs/my_program/target/surefire/surefire9012255138269731406tmp ------------------------------------------------------- T E S T S ------------------------------------------------------- There are no tests to run. Results : Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.089s [INFO] Finished at: Mon May 30 12:03:09 EDT 2011 [INFO] Final Memory: 7M/62M [INFO] ------------------------------------------------------------------------
반응형
답변
기본적으로 Maven은 실행할 테스트를 찾을 때 다음 명명 규칙을 사용합니다.
Test*
*Test
*Tests
( Maven Surefire 플러그인 2.20에 추가됨 )*TestCase
테스트 클래스가 이러한 규칙을 따르지 않는 경우 이름을 바꾸거나 테스트 클래스에 다른 패턴을 사용 하도록 Maven Surefire 플러그인을 구성해야합니다.
출처 : https://stackoverflow.com/questions/6178583/maven-does-not-find-junit-tests-to-run
728x90
반응형
'개발툴 > Maven' 카테고리의 다른 글
Maven에게 최신 버전의 종속성을 사용하도록 지시하는 방법 (0) | 2021.06.27 |
---|---|
Mac OS X에 Maven 설치 (0) | 2021.06.09 |
Maven 업데이트를 강제하는 방법 (0) | 2021.06.08 |
Maven "resolution will not be reattempted until the update interval of MyRepo has elapsed" (0) | 2021.06.08 |
Maven을 사용하여 종속성이 있는 실행 가능한 JAR을 만드는 방법 (0) | 2021.06.08 |