【问题标题】:Maven doen`t find test methodsMaven找不到测试方法
【发布时间】:2015-05-22 10:44:39
【问题描述】:

我有一个简单的项目: 这是 Main.java `

package main;

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

` 比较数字.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 test 结果是:

-------------------------------------------------------
 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 正在寻找“测试”,但我知道我没有任何其他想法..

【问题讨论】:

  • 确保将 TestCompareNumbers 类放在 src/test/java 文件夹下

标签: java maven junit


【解决方案1】:

测试类应始终命名为 *Test.java!将 TestCompareNumbers.java 重命名为 CompareNumbersTest.java 并执行测试。

并且当然要确保测试课程在src/test/java 下,就像其他发帖人所说的那样。

【讨论】:

    【解决方案2】:

    假设你的测试类在 src/test 你应该添加这个

    <testSourceDirectory>src</testSourceDirectory>
    

    但我强烈建议遵循默认的 maven 项目布局:

    sources: src/main/java
    
    test sources: src/test/java
    

    在这种情况下,您无需定义&lt;sourceDirectory&gt;&lt;testSourceDirectory&gt;,因为您遵循约定优于配置的原则。

    【讨论】:

    • 遵循默认布局。真心推荐。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2018-12-31
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多