task test_TasksAsRun { project.tasks.each { task -> if( null !=
pre_conditions[ task ] ) pre_conditions[task](task) task.execute()
if( null != post_conditions[task] ) post_conditions[task](task) }}
__________________________________________
--- On Wed, 7/20/11, Adam Murdoch <[email protected]> wrote:
From: Adam Murdoch <[email protected]>
Subject: Re: [gradle-user] Integration Testing Gradle Plugins / Spock
To: [email protected]
Date: Wednesday, July 20, 2011, 4:24 PM
On 21/07/2011, at 12:14 AM, phil swenson wrote:
Thanks Luke.
Do you guys have a design in mind for this?
I'd like to introduce some test fixtures which extend the tooling api, to add
in some test-friendly methods. This might include methods for asserting that
certain tasks were run, or were up-to-date, or that the logging output contains
certain stuff.
Also, we probably need some additional ways of launching the build. At the
moment the (public) tooling api runs builds using the daemon. This is maybe a
bit heavyweight for tests and also doesn't let you inspect the model as part of
the test. So, we might add some way to run the build in-process, so you can
reach in and grab the model at certain points during the build. Or,
alternatively, some way to inject test code into the build.
On Tue, Jul 19, 2011 at 6:17 PM, Luke Daley <[email protected]> wrote:
On 20/07/2011, at 6:28 AM, phil swenson wrote:
I am starting to write a true integration test for my gradle plugin.
Unit tests aren't really cutting it for me.....
What are people doing for this? Has anyone tried leveraging Spock for
one of these? I saw Peter's presentation on Spock last week at
UberConf and am completely sold :)
Anyone have any links on this subject? Google hasn't been very
helpful, this seems to be a niche topic.
Unfortunately there is no support for this right now. The Gradle build itself
has reasonably comprehensive fixtures for doing this, but they are not really
suitable for use outside of that build for a number of reasons. One of the
highest post 1.0 priorities is to provide support for the plugin/addon
development life cycle which includes integration testing.
So for right now, the simplest approach is to exec a gradle build and scrape
the output and look around to see what happened. I'm not aware of any examples
of this sorry.
If you want to track this issue, it's
http://issues.gradle.org/browse/GRADLE-1619
--
Luke Daley
Principal Engineer, Gradleware
http://gradleware.com
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
--Adam Murdoch
Gradle Co-founder
http://www.gradle.org
VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting
http://www.gradleware.com