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 09:38:07 GMT
ok, i'll have a look into the spec.

my biggest problem is, that buildr is not my everyday work. i just use  
it from time to time to move a project from ant to buildr... so it is  
kind of hard to digg really deep into the internals of buildr every  
time.

Am 23.10.2009 um 11:27 schrieb Alex Boisvert:

> Just in passing... if the documentation doesn't provide enough  
> information,
> the second place to look are the specs.  The specs are our 'reference
> documentation' in the sense that they specify actual expected runtime
> behavior.
>
> And this being said, I'll second you on the need for more  
> documentation on
> integration testing.
>
> alex
>
> On Fri, Oct 23, 2009 at 12:59 AM, Peter Schröder <ps@blau.de> wrote:
>
>> 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