Thanks, But now there is another problem:
If my junit tests threw an exception (like null pointer exception) - the main_project:copy_files is not being invoked. But: if the assertion failed without an exception such as junit.framework.AssertionFailedError: expected:<20> but was:<10>, the copy_files is being invoked. My Junits are actually integration tests. What is wrong? On Thu, Aug 23, 2012 at 6:05 PM, Alex Boisvert <[email protected]> wrote: > You need to add "main_project:copy_files" to your command-line (and you can > drop "build" and "integration" sînce they are implicit dependencies. > > On Thursday, August 23, 2012, Odelya Holiday wrote: > >> Sorry - my mistake - the task is not being invoked. >> >> I defined it like this: >> >> task :copy_files => [task(:integration)] do >> // copy the files >> end >> >> And my call to buildr is: >> >> buildr clean build package integration test:Suite junit:report >> test=all --verbose --trace >> >> Thanks >> >> On Wed, Aug 22, 2012 at 10:14 PM, Odelya Holiday >> <[email protected]<javascript:;>> >> wrote: >> > Thanks >> > >> > Now it works perfectly. >> > >> > On Wed, Aug 22, 2012 at 10:03 PM, Alex Boisvert >> > <[email protected]<javascript:;>> >> wrote: >> >> Oh forgot you were using integration. >> >> >> >> In that case, you can create a new task that depends on the integration >> >> task, >> >> >> >> define :main_project do >> >> # sub projects >> >> >> >> task :copy_files => [task(:integration)] do >> >> # do stuff >> >> end >> >> end >> >> >> >> and then add this task on the command line: >> >> >> >> buildr [other targets] main_project:copy_files >> >> >> >> On Wed, Aug 22, 2012 at 11:52 AM, Odelya Holiday >> >> <[email protected]<javascript:;> >> >wrote: >> >> >> >>> This is not working for me. >> >>> >> >>> since I see that the build task is extending BEFORE the integration >> >>> tests. In my integration tests I create the test war that will be >> >>> copied to the real environment in case of success test. >> >>> >> >>> If I extend build, it is being invoked before the integration.setup >> >>> method that I declared. >> >>> >> >>> >> >>> >> >>> On Wed, Aug 22, 2012 at 6:50 PM, Alex Boisvert < >> [email protected] <javascript:;>> >> >>> wrote: >> >>> > On Wed, Aug 22, 2012 at 6:54 AM, Odelya Holiday >> >>> > <[email protected]<javascript:;> >> > >> >>> wrote: >> >>> > >> >>> >> I have 3 projects which are defined in my buildfile. >> >>> >> >> >>> >> I would like to define, that if all the tests passed successfully, >> it >> >>> >> should do specific tasks. (copying files). >> >>> >> >> >>> >> So I declared in the main project definition: >> >>> >> >> >>> >> test.using :fail_on_failure=>true >> >>> >> >> >>> > >> >>> > By the way, :fail_on_failre is true by default, so you don't need to >> >>> > specify this unless you want to set it to false. >> >>> > >> >>> > Hooking into the main project definition is the right approach since >> it >> >>> > implicitly depends on sub-projects. >> >>> > >> >>> > >> >>> >> and extended the test task like this: >> >>> >> >> >>> >> test do |test_task| >> >>> >> end >> >>> >> >> >>> >> however, I see that if 2 of the 3 tests succeeded, the extended task >> >>> >> is being created. >> >>> >> >> >>> >> I would like it to be create only if all 3 succeeded. >> >>> >> >> >>> > >> >>> > Instead of enhancing the test task, use the build task. >> >>> > >> >>> > build do >> >>> > # whatever you want >> >>> > end >> >>> > >> >>> > The build task depends on the test (see default dependencies >> >>> > here< >> >>> >> https://cwiki.apache.org/confluence/display/BUILDR/12+Things+to+Know+About+Buildr >> >>> >) >> >>> > so it will only be run if all the tests pass. >> >>> > >> >>> > alex >> >>> >> >>> >> >>> >> >>> -- >> >>> Odelya >> >>> >> > >> > >> > >> > -- >> > Odelya >> >> >> >> -- >> Odelya >> -- Odelya
