2014-04-09 73 views
0

我有一個運行單元測試的ant任務。它看起來像這樣如何在Ant測試期間登錄到控制檯任務

<target name="test-platform" depends="compile_tests"> 
    <mkdir dir="${platform.test.log.dir}"/> 
    <junit fork="true" haltonerror="true"> 
     <classpath refid="test.build.classpath"/> 
     <batchtest todir="${platform.test.log.dir}"> 
      <formatter type="plain" usefile="true"/> 
      <fileset dir="${javatests}"> 
       <include name="**/*Test.java"/> 
      </fileset> 
     </batchtest> 
    </junit> 
</target> 

我有一些測試,看起來像這樣:

public class UserTest extends BaseTestClass { 

    private static final Logger LOGGER = Logger.getLogger(BaseTestClass.class); 

    @Autowired 
    SessionFactory sessionFactory; 

    @Test 
    @SuppressWarnings("unchecked") 
    public void testUser() { 
     List<User> users = sessionFactory 
      .getCurrentSession() 
      .createQuery("from User") 
      .list(); 
     for(User user : users) { 
      LOGGER.info(user.getName()); 
      Assert.assertEquals(user.getName(),String.class); 
     } 
    } 
} 

我創造了這個BaseTestClass包含一個log4j的配置遵循其他幾個SO職位。

package com.example.test; 
import org.apache.log4j.BasicConfigurator; 
public class BaseTestClass { 
    static { 
     BasicConfigurator.configure(); 
    } 
} 

但是當我運行我的測試時,控制檯中沒有任何東西出來。我該如何解決?

回答

0

一個可以快速啓動和運行:

創建一個log4j.properties文件,並把它放在你的類路徑的根。

輸入以下幾行。你使用的模式取決於你。

log4j.rootLogger = INFO, Console 

log4j.appender.Console=org.apache.log4j.ConsoleAppender 
log4j.appender.Console.layout=org.apache.log4j.PatternLayout 
log4j.appender.Console.layout.conversionPattern=%d [%t] %5p %m%n 

您可能需要刪除BaseTestClass。

+0

他西蒙明確地傳遞,感謝您的回答,讓我試試。我將首先嚐試將log4j.properties放置在類路徑中的測試目錄資源目錄中。我預計在你提到的類路徑的「根」方面會遇到一些障礙。 –

+0

屏幕上還沒有出現。我在我的test目錄的頂部和我的test-applicationContext.xml旁邊的資源目錄中都嘗試了'和''和log4j.properties –

1

每頁:http://ant.apache.org/manual/Tasks/junit.html,嘗試設置showoutput="true"和log4j的參考可以<jvmarg value="-Dlog4j.configuration=file>

+0

不幸的是,這似乎將一切都發送到控制檯,包括詳細的休眠輸出。 –

+1

@DavidWilliams然後,您可以使用:junitreport ant任務http://ant.apache.org/manual/Tasks/junitreport.html並展開失敗以查看htm報告中的相關異常 –