Thanks so much for the help!

Douglas Bullard
Sr. Java App. Engineer
Nike, Inc.
503.671-6261

That which makes us great, also destroys us



On Jan 11, 2011, at 13:22, Adam Murdoch wrote:


On 12/01/2011, at 6:05 AM, Bullard, Douglas wrote:

I’m a Gradle newbie, trying to convert my TestNG output into something 
prettier.  In Ant I use a nice xsl transform that does the job nicely.  I’m 
trying to convert this to Gradle, but get a really nasty stylesheet exception 
when I try to pass in needed parameters.

Here’s how it looks in Ant:

<xslt in="@{testNgOutputDir}/testng-results.xml”
                style="${lib.test.formatTestNg}/testng-results.xsl”
                out="@{outputDir}/index.html”>
              <param name="testNgXslt.outputDir" expression="@{outputDir}/“/>
              <param name="testNgXslt.sortTestCaseLinks" expression="true”/>
              <param name="testNgXslt.testDetailsFilter" 
expression="FAIL,SKIP,PASS”/>
              <classpath refid="classpath.testng.format”/>
</xslt>


I’m trying to get something like:
task formatTestResults << {
ant.xslt(in: 
'/Users/douglasbullard/Documents/JavaStuff/Google_Code/IvyTools/branches/gradle/build/reports/tests/testng-results.xml',
         style: 
'/Users/douglasbullard/Documents/JavaStuff/testng-xslt-1.1.1/src/main/resources/testng-results.xsl',
         out:   
'/Users/douglasbullard/Documents/JavaStuff/Google_Code/IvyTools/branches/gradle/build/reports/tests/index.html',
         classpath: 
'/Users/douglasbullard/Documents/JavaStuff/testng-xslt-1.1.1/lib/saxon-8.7.jar'

)
}

As I mentioned, this doesn’t seem to be accepting any of the things I’ve tried 
for passing the pararms (outputDir, sortTestCaseLinks, and testDetailsFilter) - 
what’s the right way to pass this from Gradle to Ant?

You pass nested Ant elements as method calls nested in a closure:

ant.xslt(in: '..', style: '..', out: '..) {
    param(name: '..', expression: '..')
}

Have a look at the description of how to map from Ant to Gradle in the user 
guide: http://gradle.org/0.9.1/docs/userguide/ant.html#N112F1


 Or, is there another way to do this in pure Gradle?

Not really. However, you can simply drive the Transformer directly from your 
build script:

task transform << {
    def transformer = TransformerFactory.newInstance().newTransformer(...)
    transformer.setParamter('..', '..')
    transformer.transform(...)
}


--
Adam Murdoch
Gradle Developer
http://www.gradle.org<http://www.gradle.org/>
CTO, Gradle Inc. - Gradle Training, Support, Consulting
http://www.gradle.biz



---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to