2017-04-23 37 views
0

junitで単体テストの簡単なプロジェクトを作成しました。私はmvn testを実行しましたが、私は次のメッセージを受け取ります。これは私のフォルダ構造です。mvnテストでjunitテストが見つかりません

[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ junit-tests --- 
[INFO] No sources to compile 
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ junit-tests --- 
[INFO] No tests to run. 
[INFO] Skipping execution of surefire because it has already been run for this configuration 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.394 s 
[INFO] Finished at: 2017-04-22T20:37:54-04:00 
[INFO] Final Memory: 16M/211M 
[INFO] ------------------------------------------------------------------------ 

私のプロジェクトの構造。

.                          │/.m2/repository/org/sonatype/mcookbook/junit-tests/1.0-SNAPSHOT/junit-tests-1.0-SNAPSHOT.jar 
├── pom.xml                       │[INFO] Installing /Users/ianvshuff/Code/junit/pom.xml to /Users/ianvshuff/.m2/repository/org/sonatype 
├── src                        │/mcookbook/junit-tests/1.0-SNAPSHOT/junit-tests-1.0-SNAPSHOT.pom 
│   └── main                       │[INFO] 
│    └── java                      │[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ junit-tests --- 
│     └── org                     │[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform 
│      └── calculator                  │ dependent! 
│       └── instant                  │[INFO] skip non existing resourceDirectory /Users/ianvshuff/Code/junit/src/main/resources 
│        └── Calculator.java               │[INFO] 
├── target                       │[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ junit-tests --- 
│   ├── classes                      │[INFO] Changes detected - recompiling the module! 
│   │   └── org                      │[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform depen 
│   │    └── sonatype                    │dent! 
│   │     └── macbook                   │[INFO] Compiling 1 source file to /Users/ianvshuff/Code/junit/target/classes 
│   │      └── Calculator.class                │[INFO] 
│   ├── junit-tests-1.0-SNAPSHOT.jar                 │[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ junit-tests --- 
│   ├── maven-archiver                    │[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform 
│   │   └── pom.properties                   │ dependent! 
│   └── maven-status                     │[INFO] skip non existing resourceDirectory /Users/ianvshuff/Code/junit/src/test/resources 
│    └── maven-compiler-plugin                  │[INFO] 
│     └── compile                    │[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ junit-tests --- 
│      └── default-compile                 │[INFO] No sources to compile 
│       ├── createdFiles.lst                │[INFO] 
│       └── inputFiles.lst                │[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ junit-tests --- 
└── test                        │[INFO] No tests to run. 
    └── main                       │[INFO] Skipping execution of surefire because it has already been run for this configuration 
     └── java                      │[INFO] ------------------------------------------------------------------------ 
      └── org                     │[INFO] BUILD SUCCESS 
       └── calculator                  │[INFO] ------------------------------------------------------------------------ 
        └── instant                  │[INFO] Total time: 1.394 s 
         └── CalculatorTest.java 

これは私のクラスとテストクラスです。

Calculator.java

package org.sonatype.macbook; 
public class Calculator { 
     public int evaluate(String expression) { 
       int sum = 0; 
       for (String summand: expression.split("\\+")) 
         sum += Integer.valueOf(summand); 
       return sum; 
     } 
} 

CalculatorTest.java

package org.calculator.instant; 
import static org.junit.Assert.assertEquals; 
import org.junit.Test; 

public class CalculatorTest { 
     @Test 
     public void evaluatesExpression() { 
       Calculator calculator = new Calculator(); 
       int sum = calculator.evaluate("1+2+3"); 
       assertEquals(6, sum); 
     } 
} 

のpom.xml

<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>org.calculator.instant</groupId> 
     <artifactId>junit-tests</artifactId> 
     <packaging>jar</packaging> 
     <version>1.0-SNAPSHOT</version> 
     <name>junit-tests</name> 
     <dependencies> 
       <dependency> 
         <groupId>junit</groupId> 
         <artifactId>junit</artifactId> 
         <version>4.12</version> 
         <scope>test</scope> 
       </dependency> 
     </dependencies> 
</project> 

私は理由を理解することはできませんので、私は一般的にはJUnitのとJavaへの初心者ですこれらは実行されていません。

+1

あなたのテストクラスは 'src/test/java'にある必要があります。 'test/main/java'ではありません –

+0

@SteveC、それは間違っています。 –

答えて

2

Mavenプロジェクトの構造は、 src/main/java/package/classsrc/test/java/package/testclassである必要があります。構造が正しくありません。それを更新してください。

+0

それはうまくいった!ありがとうございました! – OceansOnPluto

関連する問題