2015-03-19 26 views
0

我有一個簡單的項目: 這是Main.java`Maven的doen`t找到測試方法

package main; 

public class Main { 
    public static void main(String[] args){ 
     System.out.println(new CompareNumbers(7, 6).compara()); 
    } 
} 

` CompareNumbers.java

package main; 

public class CompareNumbers { 
    private int x,y; 

    public CompareNumbers(int x, int y){ 
     this.x=x; 
     this.y=y; 
    } 

    public String compara(){ 
     if(x==y){ 
      return "x egal y"; 
     } 
     if(x<y){ 
      if(x<y-5){ 
       return "x mai mic cel putin 5"; 
      } 
      if(x>y-2){ 
       return "x mai mic cel mult 2"; 
      } 
     } 

     if(y<x){ 
      if(y<x-5){ 
       return "y mai mic cel putin 5"; 
      } 
      if(y>x-2){ 
       return "y mai mic cel mult 2"; 
      } 
     } 
     return "indecizie"; 
    } 

} 

我的測試類是:

package test; 

import main.CompareNumbers; 

import org.junit.*; 


public class TestCompareNumbers { 
    @Test 
    public void testScenario_1_Test(){ 
     CompareNumbers c = new CompareNumbers(1, 7); 
     String s = c.compara(); 
     Assert.assertTrue("x mai mic cel putin 5".equals(s)); 

    } 

    @Test 
    public void testScenario_2_Test(){ 
     CompareNumbers c = new CompareNumbers(6, 7); 
     String s = c.compara(); 
     Assert.assertTrue("x mai mic cel mult 2".equals(s)); 

    } 

    @Test 
    public void testScenario_3_Test(){ 
     CompareNumbers c = new CompareNumbers(4, 7); 
     String s = c.compara(); 
     Assert.assertTrue("indecizie".equals(s)); 

    } 

    @Test 
    public void testScenario_4_Test(){ 
     CompareNumbers c = new CompareNumbers(7,4); 
     String s = c.compara(); 
     Assert.assertTrue("indecizie".equals(s)); 

    } 


} 

我的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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>coverage</groupId> 
    <artifactId>coverage</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <plugins> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.1</version> 
     <configuration> 
      <source>1.7</source> 
      <target>1.7</target> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.2</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project>` 

當我按下MVN測試結果是:

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 

Results : 

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 

[INFO] BUILD SUCCESS 

[INFO] Total time: 1.034s 
[INFO] Finished at: Thu Mar 19 12:33:23 EET 2015 
[INFO] Final Memory: 8M/149M 
[INFO] 

你有什麼想法?起初,我改變了我的測試方法的名字,因爲我知道,Maven是尋找「測試」,但知道我沒有任何其他的想法..

+0

確保您在src/test/java文件夾下放置了TestCompareNumbers類 – bsiamionau 2015-03-19 10:50:55

回答

1

假設你的測試類是src/test你應該增加這個

<testSourceDirectory>src</testSourceDirectory> 

但我會強烈建議遵循默認的Maven項目佈局:

sources: src/main/java 

test sources: src/test/java 

在這種情況下,你不需要定義任何<sourceDirectory><testSourceDirectory>因爲你遵循以上的配置原則約定。

+0

遵循默認佈局。真的推薦。 – khmarbaise 2015-03-19 11:33:03

0

測試類應該總是被命名* Test.java!重命名TestCompareNumbers.javaCompareNumbersTest.java並且測試將被執行。

當然確保測試類src/test/java下像其他海報說。