2011-12-05 123 views
0

我目前的方法是從我的應用程序中調用ant build,它會創建所需的junit報告,但我希望能夠靈活地以編程方式編寫junit報告。以編程方式創建JUnit報告

我試過這種方法 Ant:create JUnit report task programmatically

FileSet fs = new FileSet(); 
fs.setDir(new File("..")); 
fs.createInclude().setName("TEST-*.xml"); 
XMLResultAggregator aggregator = new XMLResultAggregator(); 
aggregator.addFileSet(fs); 
AggregateTransformer transformer = aggregator.createReport(); 
transformer.setFormat(Format.FRAMES); 
transformer.setTodir(new File(".."); 

,但我甚至不能讓它運行。還有什麼想法?

+0

你從哪裏被卡住了?它爲什麼沒有運行? – Deco

+0

'FileSet fs = new FileSet(); fs.setDir(new File(「..」)); fs.createInclude()。setName(「TEST - *。xml」); XMLResultAggregator aggregator = new XMLResultAggregator(); aggregator.addFileSet(fs); AggregateTransformer transformer = aggregator.createReport(); transformer.setFormat(Format.FRAMES); transform.setTodir(new File(「..」);' Format.FRAMES的值應該是什麼?當我從程序運行junit時,上面的代碼何時會被觸發? – jantox

回答

1

你貼的代碼調用junitreport任務相當於:

<junitreport todir=".."> 
<fileset dir=".."> 
<include name="TEST-*.xml" /> 
</Fileset> 
<report format="frames" todir=".." /> 
</Junitreport> 

你需要把它放到方法和自己運行它。此代碼將採用名爲TEST-*.xml的所有文件並使用它們創建報告。它會而不是創建這些文件。這些文件是由Ant中的junit任務創建的。所以,你需要:

  1. 程序運行JUnit任務(見JUnitTask (Apache Ant API)),確保TEST * .xml文件在一個臨時目錄中創建的地方。
  2. 使用這些臨時文件運行上述代碼以生成報告。

要做到這一點,最簡單的方法可能就是你已經做了什麼,在某個地方有build.xml,並直接調用ant。如果你使用的文件集是穩定的,那麼這可能是最簡單的方法。爲此,請使用ProcessBuilder java類。

相關問題