ant+junit出现NoSuchMethodError的原因

运行现象:

    [junit] Running com.company.test.FooTest
    [junit] java.lang.NoSuchMethodError: junit.framework.TestCase.name();Ljava/lang/String;
    [junit]     at org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter.startTest(PlainJUnitResultFormatter.java:188);
    [junit]     at junit.framework.TestResult.startTest(TestResult.java:151);
    [junit]     at junit.framework.TestResult.run(TestResult.java:103);
    [junit]     at junit.framework.TestCase.run(TestCase.java:118);
    [junit]     at junit.framework.TestSuite.runTest(TestSuite.java:208);
    [junit]     at junit.framework.TestSuite.run(TestSuite.java:203);
    [junit]     at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:231);
    [junit]     at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:409);
    [junit] Exception in thread "main"

junit 3.8.1, ant 1.6.0 & 1.5.4都出现此错误
(已将junit.jar复制到ant_home/lib)

解决方法:

换junit 3.7,测试程序可以运行,但是,TestCase必须重写那个带String参数的构造器才能通过编译(在junit 3.8.1下没有这个问题,先前我们的TestCase都没有这样做)
而用junit 3.8.1的话,不管是否重写构造器,总是会出NoSuchMethodError -_-b

posted @ 2012-01-06 10:27 sky7034 阅读(...) 评论(...) 编辑 收藏
蘑菇街女装 货运专家