2010-09-27 48 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