2011-04-02 114 views
22

我試着寫與JUnit測試的螞蟻,卻得到如下結果:螞蟻junit任務不報告詳細

unittest: 
    [junit] Running com.mytest.utiltest 
    [junit] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec 
    [junit] Test com.mytest.utiltest FAILED 

它只是顯示錯誤,而不打印細節,我指定以下參數的build.xml 也試圖從ant -v or ant -debug開始,但沒有得到任何好運。誰能幫忙?

<junit printsummary="yes" showoutput="true"> 

螞蟻1.8.2,太陽jdk1.6.0_20,JUnit的4.8.2

縮小的問題,我創建了一個單獨的項目 這是我的build.xml

<project name = "TestPrj" default="unittest" basedir = "."> 

    <target name="unittest" > 
     <junit printsummary="yes" showoutput="true" > 
      <classpath> 
       <pathelement location="./junit-4.8.2.jar"/> 
       <pathelement location="./ant-junit4.jar"/> 
      </classpath> 
      <test name = "com.mytest.unittest.SimpleTest" todir="."/> 
     </junit> 
    </target> 

</project> 
下面

是simpletest.java

package com.mytest.unittest; 

import junit.framework.TestCase; 


public class SimpleTest extends TestCase{ 
    public void testFirst() 
    { 
     assertTrue(true); 
    } 

} 

C:\ TestPrj>蟻

Buildfile: C:\TestPrj\build.xml 

unittest: 
    [junit] Running com.mytest.unittest.SimpleTest 
    [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0 sec 

BUILD SUCCESSFUL 
Total time: 0 seconds 

C:\ TestPrj> DIR

Directory of C:\TestPrj 

04/02/2011 02:00 PM <DIR>   . 
04/02/2011 02:00 PM <DIR>   .. 
04/02/2011 01:56 PM    280 .classpath 
04/02/2011 01:54 PM    519 .project 
04/02/2011 02:00 PM    7,120 ant-junit4.jar 
04/02/2011 02:00 PM    403 build.xml 
04/02/2011 01:55 PM <DIR>   com 
11/17/2010 05:36 PM   237,344 junit-4.8.2.jar 
       5 File(s)  245,666 bytes 
       3 Dir(s) 28,451,311,616 bytes free 

爲什麼有沒有一個JUnit結果/細節/報告產生的? 因此,在我真實的失敗案例中,我無法解決我的問題?

回答

40

你必須使用一個formatter元素junit任務內。格式化程序默認會創建一個報告文件,但您可以強制它在屏幕上打印結果。您可以使用兩個格式化器:一個用於輸出到屏幕,另一個用於輸出到文件。

請注意,您不再需要junit任務中的屬性printsummary="yes"showoutput="true"。格式化程序現在正在處理輸出。

<project name = "TestPrj" default="unittest" basedir = "."> 

<target name="unittest" > 
    <junit> 
     <classpath> 
      <pathelement location="./junit-4.8.2.jar"/> 
      <pathelement location="./ant-junit4.jar"/> 
     </classpath> 
     <formatter type="plain" usefile="false" /> <!-- to screen --> 
     <formatter type="plain" /> <!-- to file --> 
     <test name = "com.mytest.unittest.SimpleTest" todir="."/> 
    </junit> 
</target> 

</project> 

閱讀ant手冊中的junit頁面以獲取更多信息。

+2

這可以工作,但是一旦所有測試運行完畢,它就會將結果輸出到屏幕上。我希望看到它們隨時可以運行,以便我可以監控進度。任何你知道要這樣做的方式? – crowmagnumb 2014-05-29 19:50:57

+1

請看這裏:http://stackoverflow.com/questions/18293054/immediate-junit-test-logging-with-junit-ant-task – lesmana 2014-05-29 21:30:39

1

你可以在這裏發佈從build.xml調用junit的片段嗎?構建失敗可能有幾個原因。另外,請張貼您正在測試的測試用例。

編輯:你需要靜態測試嗎?

public class utilTest extends TestCase { 
    public void testfun() { 
    assertTrue(true); 
    } 
} 

編輯:嘗試使用參數OUTFILE

<target name="unittest"> 
    <junit printsummary="yes" showoutput="true"> 
     <classpath> 
      <pathelement location="./junit-4.8.2.jar"/> 
      <pathelement location="./ant-junit4.jar"/> 
     </classpath> 

     <formatter type="plain" /> 

     <test name="com.mytest.unittest.SimpleTest" outfile="./testresult" /> 
    </junit> 
    <fail message="test failed" if="test.failure" /> 
</target> 
+0

<目標名稱= 「單元測試」 取決於= 「初始化」> \t \t \t <測試名稱= 「com.mytest.utiltest」/> \t – hetaoblog 2011-04-02 05:35:46

+0

public class utilTest extends TestCase {public static void testfun(assertTrue(true);)} – hetaoblog 2011-04-02 05:36:21

+0

請刪除靜態修飾符,並讓我知道它是否正常工作。 – Shankar 2011-04-02 05:45:01