JUnit求助:线程“main”中的异常java.lang.NoSuchMethodError:main

时间:2012-11-30 04:35:56

标签: junit

我有两个文件:

Calc.java

public class Calc {
 public int add(int a, int b) {
  return a + b;
 }
 public int subtract(int a, int b) {
  return a - b;
 }
}

和TestCalc.java

import org.junit.* ;
import static org.junit.Assert.* ;

public class TestCalc {

  Calc c = new Calc();

  @Test
  public void testSum() {
    // 6 + 9 = 15
    int expected = 15;
    int actual = c.add(6, 9);
    assertEquals("adding 6 and 9", expected, actual);
  }

  @Test
  public void testSubstr() {
    // 18 - 3 = 15
    int expected = 15;
    int actual = c.subtract(18, 3);
    assertEquals("subtracting 3 from 18", expected, actual);
    }
  }

他们编译时没有错误:

javac -cp .:junit-4.11.jar TestCalc.java
javac -cp .:junit-4.11.jar Calc.java

但是当我试图跑步时,我收到了一个错误:

java -cp .:junit-4.11.jar TestCalc

Exception in thread "main" java.lang.NoSuchMethodError: main

请有人解释原因吗?以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您应该使用JUnit's runners来运行测试用例类。

java -cp .:junit-4.11.jar org.junit.runner.JUnitCore TestCalc.java

JUnitCore将在您的测试类中运行测试。