AntでJUnit4のテストを実行する

Ant 1.6.5 で JUnit4 用のテストケースを実行しようとすると no test found とかいわれる。これは Ant 1.6.5 の TestRunner が JUnit4 に対応していないからなのだが、そういうときは suite() メソッドで JUnit4TestAdapter でラップした Test を返すといいらしい。
こんなかんじ。

import org.junit.Before;
import org.junit.After;
import org.junit.Test;
import static org.junit.Assert.*;

public class FooTest {
    public static junit.framework.Test suite() {
        return new JUnit4TestAdapter(FooTest.class);
    }

    @Before public void setUp() throws Exception {
    }

    @After public void tearDown() throws Exception {
    }

    @Test public void testBar() throws Exception {
        // do something
    }
}

まぁ、Ant というより JUnit4 に対応していない各種 IDE とかビルドツールでも同様だろう。そのうちツールの方で対応するだろうけど、それまでの次善策ということで。