5

私はいくつかの単体テストを作成しました(テストクラスで)。私が読んだチュートリアルでは、単体テスト用の TestSuite を作成する必要があると書かれていました。

奇妙なことに、ユニット テストを直接実行している場合 (テスト クラス - Run as jUnit テストを選択している場合) はすべて正常に動作していますが、テスト スイートで同じことを試みている場合は常に例外があります: java.lang.例外: 実行可能なメソッドはありません。

テスト スイートのコードは次のとおりです。

import junit.framework.Test;
import junit.framework.TestSuite;

public class AllTests {

public static Test suite() {
    TestSuite suite = new TestSuite("Test suite for com.xxx.yyyy.test");
    //$JUnit-BEGIN$
    suite.addTestSuite(TestCase.class);
    //$JUnit-END$
    return suite;
    }

}

これが機能しない理由はありますか?

4

4 に答える 4

5

私はアリの経験がないので、今はテストに使用していません。

インターネットを検索すると、古い jUnit 3.8 と jUnit 4.0 の動作を混同しているようです。「新しい動作」を使用する方法を今試しています

編集:
今では動作します:

AllTest は次のように変更されました。

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;


@RunWith(value=Suite.class)
@SuiteClasses(value={TestCase.class})
public class AllTests {

}

TestCase が次のように変更されました:

import static org.junit.Assert.assertTrue;
import org.junit.Test;

public class TestCase  {
@Test
    public void test1 {
        assertTrue (tmp.getTermin().equals(soll));
    }
}
于 2008-10-10T06:51:08.073 に答える
2

私もそれを理解するのに少し時間がかかりましたが、これであなたの問題は解決すると思います:

suite.addTestSuite(TestCase.class) を実行していますが、suite.addTest(TestCase.class) を実行する必要があります。

テストスイートにテストスイートを追加して、テストスイートの階層全体を作成することもできます。その場合、suite.addTest() を使用する必要があります。ただし、.class ではなく .suite() を使用することに注意してください: suite.addTest(MyTestSuite. suite() )!

于 2009-06-12T09:32:29.093 に答える
0

確かに、テスト スイートにテスト クラスを伝えていないため、うまくいきません。

しかし、jUnit の ant タスクを使用してテストスイートを構築するための「古典的な方法」を使用していないのはなぜだろうか。

于 2008-10-10T05:51:37.570 に答える