Re: unpredictable behavior of test.using :integration

2009-10-23 Thread Peter Schröder
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 p...@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





helper for directories

2009-10-23 Thread Peter Schröder
hi there,

i am looking for the way that buildr is creating directories on  
demand. i would like to use some magic like if the directory is  
missing, just create it! so that i dont have to create the  
directories myself.

kind regards,
peter


Re: unpredictable behavior of test.using :integration

2009-10-23 Thread 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 p...@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 p...@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
 
 




Re: helper for directories

2009-10-23 Thread Assaf Arkin
On Fri, Oct 23, 2009 at 1:02 AM, Peter Schröder p...@blau.de wrote:

 hi there,

 i am looking for the way that buildr is creating directories on
 demand. i would like to use some magic like if the directory is
 missing, just create it! so that i dont have to create the
 directories myself.


Rake has a nice way of handling this using dependencies:

  directory foo/bar

  file foo/bar/baz.h=foo/bar do
# create baz.h, directory exists ...
  end

Personally, I use mkdir_p, which will create parent directories as
necessary, and not complain if directory already exists:

  file foo/bar/baz.h do
mkdir_p foo/bar
# create baz.h, directory exists ...
  end

Assaf




 kind regards,
 peter



nailgun working under windows?

2009-10-23 Thread Shane Witbeck
Anyone have Nailgun working under windows? I've tried with JRuby 1.3.1
and the latest 1.4.0RC2.

C:/jruby-1.4.0RC2/lib/ruby/site_ruby/shared/ffi/ffi.rb:113:in
`create_invoker': Function 'system' no
t found in [current process] (FFI::NotFoundError)
from C:/jruby-1.4.0RC2/lib/ruby/site_ruby/shared/ffi/library.rb:74:in
`attach_function'
from C:/jruby-1.4.0RC2/lib/ruby/site_ruby/shared/ffi/library.rb:72:in
`each'
from C:/jruby-1.4.0RC2/lib/ruby/site_ruby/shared/ffi/library.rb:72:in
`attach_function'
from 
C:/jruby-1.4.0RC2/lib/ruby/gems/1.8/gems/buildr-1.3.5-java/lib/buildr/core/util.rb:410
from 
C:/jruby-1.4.0RC2/lib/ruby/gems/1.8/gems/buildr-1.3.5-java/lib/buildr/core/util.rb:31:i
n `require'
from 
C:/jruby-1.4.0RC2/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
from 
C:/jruby-1.4.0RC2/lib/ruby/gems/1.8/gems/buildr-1.3.5-java/lib/buildr/core/common.rb:18

from 
C:/jruby-1.4.0RC2/lib/ruby/gems/1.8/gems/buildr-1.3.5-java/lib/buildr/core/common.rb:31
:in `require'
 ... 7 levels...
from 
C:/jruby-1.4.0RC2/lib/ruby/gems/1.8/gems/buildr-1.3.5-java/bin/buildr:18
from 
C:/jruby-1.4.0RC2/lib/ruby/gems/1.8/gems/buildr-1.3.5-java/bin/buildr:19:in
`load'
from C:/jruby-1.4.0RC2/bin/buildr:19

-Shane