2010-09-27 54 views
2

我总是得到:junit和ant问题。当我正在从蚂蚁JUnit测试不能启动测试

D:\metrike>ant test 
Buildfile: build.xml 

init: 

compile: 

test: 
    [junit] Running jmt.test.TestCodeBase 
    [junit] Testsuite: jmt.test.TestCodeBase 
    [junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0,046 sec 
    [junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0,046 sec 
    [junit] 
    [junit] Testcase: warning(junit.framework.TestSuite$1):  FAILED 
    [junit] No tests found in jmt.test.TestCodeBase 
    [junit] junit.framework.AssertionFailedError: No tests found in jmt.test.TestCodeBase 
    [junit] 
    [junit] 
    [junit] Test jmt.test.TestCodeBase FAILED 

这是蚂蚁文件:

<target name="test" depends="compile"> 
    <mkdir dir="target/test-results"/> 
    <junit haltonfailure="no" printsummary="on"> 
     <classpath > 
      <pathelement location="target/classes"/> 
      <pathelement location="Libraries/junit3.8.1/junit.jar"/> 
     </classpath> 
     <formatter type="brief" usefile="false"/> 
     <formatter type="xml" /> 
     <batchtest todir="target/test-results" > 
      <fileset dir="target/classes" includes="**/TestCodeBase.class"/> 
     </batchtest> 
    </junit> 
</target> 

但是当我手动运行测试,JUnit测试工作:

D:\metrike>cd target 

D:\metrike\target>cd classes 

D:\metrike\target\classes>java jmt.test.TestCodeBase 
fatsource.jar eclapsed : 2297 ms 
over all : 2297 ms 
contains 3073 classes and 3700 referred classes, 35968 referred methods, 22351 referred fields 
Memory usage: 21326 KB 
Post gc-memory usage: 19506 KB 
contains 3073 classes and 3700 referred classes, 35968 referred methods, 22351 referred fields 

有人能告诉我我做错了什么吗?我一直试图解决这一整天,但我找不到解决方案。

回答

4

1)jmt.test.TestCodeBase是否扩展了TestCase(junit.framework.TestCase)?

如果不是,它将需要被junit ant任务拾取。

2)该类是作为junit TestCase编写的,还是仅从主方法调用?有关以Junit3风格编写简单测试的示例,请参阅this link。对于Junit4,只需在方法上面添加@Test即可。

3)Junit3风格的测试方法(每种方法都以测试开始)还是Junit4风格(每种方法的上面都有一个@Test)?

如果是Junit3,你应该很好走。如果是Junit4,则需要将Junit4测试库包含在ant类路径中,而不是使用junit3.8.1。

+1

thx寻求帮助。忘记扩展TestCase – user437630 2010-09-27 12:20:49

+0

如果我想使用jUnit 4,我必须扩展哪个类路径? 'shell'中的'ANT_HOME'或'build.xml'中的''内的''? – mmrmartin 2015-11-27 01:33:54

0

请发布jmt.test.TestCodeBase示例代码,类定义和其中一种测试方法。

我看起来像你使用public static int main()而不是JUnit约定public void testFoo()方法。如果你使用的是JUnit4,你的测试方法应该有@Test注解。

JUnit测试通常不能只是java <Testclass>

+1

thx寻求帮助。忘记扩展TestCase – user437630 2010-09-27 12:14:57

1

看来你的测试类实际上不是一个JUnit测试类运行。当你手动运行它时,你并没有将它作为一个测试运行,而是作为一个普通的Java应用程序运行。这个班有一个主要方法,对吧?要作为JUnit 3(您似乎正在使用的)测试运行,该类需要扩展TestCase并具有一个或多个名称以'test'开头的公共void方法。为了测试,我会尝试在IDE中作为JUnit测试运行该类。

+1

thx寻求帮助。忘记扩展TestCase – user437630 2010-09-27 12:14:16