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?
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