buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Schröder ...@blau.de>
Subject Re: unpredictable behavior of test.using :integration
Date Fri, 23 Oct 2009 07:59:52 GMT
the documentation on this topic is very limited...

my expectations were the following:

1. integration setup and teardown are only executed if i explicitly  
use :integration
2. i can configure it for each subproject
3. i am able to configure it from the outside via a custom task

i dont think that it is neccessary to support all my needs, but i  
think a clear instruction what you can do and what you cant would help!

kind Regards,
Peter

Am 21.10.2009 um 20:40 schrieb Assaf Arkin:

> On Wed, Oct 21, 2009 at 2:10 AM, Peter Schröder <ps@blau.de> wrote:
>
>> another thing i noticed, is that calling
>>
>> project.test.using :integration in a post-define task
>>
>> seems to work differntly form calling it directly in the project via
>>
>> test.using :integration
>>
>> any ideas?
>>
>
> Flipping integration bit on simply changes when tests are run: after
> packaging (integration), instead of before packaging (regular). All  
> other
> behavior is the same (setup, teardown, frameworks, etc).
>
> Test options are inherited, options you define in a parent project are
> inherited by its sub-project, and that should include the integration
> option.
>
> Changing the order in which tests are run involving setting up task
> dependencies, which happens at the very end of the project  
> definition, after
> evaluating the block. If you then (post-define) change the setting,  
> nothing
> much happens, as task are already wired to run in non-integration  
> order.
>
> Assaf
>
>
>>
>> Am 21.10.2009 um 09:32 schrieb Peter Schröder:
>>
>>> hi there,
>>>
>>> we are experiencing somewhat strange behavior when using integration
>>> tests.
>>>
>>> we have a setup where a project has n subprojects and only one of  
>>> them
>>> has tests that should be executed as integration-tests.
>>>
>>> we are using environment-variables to let buildr include some test-
>>> classes that are only executed on our system-test-servers.
>>>
>>> this works very well: compiles, package artifacts, calls  
>>> integration-
>>> setup, performs-tests, integration-teardown
>>>
>>> on the other hand we have the same setup but with a single project
>>> without subprojects, where the integration setup is missing, so the
>>> system-tests fail without a system to test. in that project i have  
>>> to
>>> call the integration-target directly to have the desired behavior.
>>>
>>> the builds are quite complex so i wont include them here, but i  
>>> played
>>> around a little bit with a dummy project (see below).
>>>
>>> the things i dont understand are:
>>>
>>> 1. why are setup and teardown called for all projects even though  
>>> they
>>> are never configured with :integration
>>> 2. why are all tests executed as :integration if you just  
>>> configure it
>>> in the parent project
>>> 3. under wich circumstances will the integration-target get invoked
>>>
>>>
>>> module SystemTests
>>>  include Extension
>>>
>>>  after_define do |project|
>>>    info "after define for #{project}"
>>>    #project.test.using :integration
>>>    project.integration.setup do
>>>      info "-" * 50 + " integeration setup for #{project}"
>>>    end
>>>
>>>    project.integration.teardown do
>>>      info "-" * 50 + " integeration teardown for #{project}"
>>>    end
>>>  end
>>>
>>> end
>>>
>>> class Buildr::Project
>>>  include SystemTests
>>> end
>>>
>>> repositories.remote << 'http://www.ibiblio.org/maven2/'
>>>
>>> info "define all"
>>> define 'all' do
>>>
>>>  info "define subA"
>>>  define 'subA' do
>>>    info "subA goes here"
>>>    #test.using :integration
>>>  end
>>>
>>>  info "define subB"
>>>  define 'subB' do
>>>    info "subB goes here"
>>>    #test.using :junit
>>>  end
>>>
>>>  info "all goes here"
>>>
>>>  test.using :integration
>>>
>>> end
>>
>>


Mime
View raw message