I've had some frustration in this area too. In order to run integration tests you have to call from the top level project. I don't believe you need the test.using :integration defined in the top level project because integration tests get run automatically if called from top level. I'm not 100% sure about this so someone correct me if I'm wrong.
I've asked for a finer grained approach but was told to either reorganize where my tests were located or create a project specifically to contain integration tests. -Shane On Wed, Oct 21, 2009 at 3:32 AM, Peter Schröder <[email protected]> wrote: > 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 >
