0

私は2つのファイルを持っています:

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

誰か、理由を説明してもらえますか? そして、それを修正する方法は?

4

1 に答える 1

1

JUnitのランナーを使用して、テストケースクラスを実行する必要があります。

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

JUnitCoreは、テストクラスでテストを実行します。

于 2012-11-30T04:42:29.243 に答える