buildr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Assaf Arkin" <ar...@intalio.com>
Subject Re: svn commit: r698285 - /incubator/buildr/trunk/spec/java/bdd_spec.rb
Date Tue, 23 Sep 2008 21:55:47 GMT
Just an observation, this:
    write _(:source, :spec, :java, 'Something.java'), 'public class
Something {}'
is harder to read than this:
    write _('src/spec/java/'Something.java'), 'public class Something {}'

The second is also a better test case than the first, since that's how
we expect people to write buildfiles, so if the layout is messed the
first test case will ignore the bug, but the second one will catch it.

Assaf

On Tue, Sep 23, 2008 at 12:12 PM,  <vborja@apache.org> wrote:
> Author: vborja
> Date: Tue Sep 23 12:12:06 2008
> New Revision: 698285
>
> URL: http://svn.apache.org/viewvc?rev=698285&view=rev
> Log:
> specs for JtestR.
>
> JtestR supports many testing frameworks:
>   junit, testng, test_unit, rspec, expectations
>
> A java compiler should be used when junit, testng files present.
> Added examples for each supported testing framework.
>
> Modified:
>    incubator/buildr/trunk/spec/java/bdd_spec.rb
>
> Modified: incubator/buildr/trunk/spec/java/bdd_spec.rb
> URL: http://svn.apache.org/viewvc/incubator/buildr/trunk/spec/java/bdd_spec.rb?rev=698285&r1=698284&r2=698285&view=diff
> ==============================================================================
> --- incubator/buildr/trunk/spec/java/bdd_spec.rb (original)
> +++ incubator/buildr/trunk/spec/java/bdd_spec.rb Tue Sep 23 12:12:06 2008
> @@ -49,7 +49,7 @@
>
>   def foo(*args, &prc)
>     define('foo', *args) do
> -      test.using :jtestr
> +      test.using :jtestr, :output => false
>       if prc
>         instance_eval(&prc)
>       else
> @@ -62,11 +62,189 @@
>     foo { test.framework.should eql(:jtestr) }
>   end
>
> -  it 'should include src/spec/ruby/**/*_spec.rb'
> -  it 'should auto generate jtestr configuration'
> -  it 'should run runit test cases'
> -  it 'should use a java compiler if java sources found'
> -  it 'should run junit test cases'
> +  it 'should apply to projects having test_unit sources' do
> +    define('one', :base_dir => 'one') do
> +      write _(:source, :spec, :ruby, 'one_test.rb')
> +      JtestR.applies_to?(self).should be_true
> +    end
> +    define('two', :base_dir => 'two') do
> +      write _(:source, :spec, :ruby, 'twoTest.rb')
> +      JtestR.applies_to?(self).should be_true
> +    end
> +    define('three', :base_dir => 'three') do
> +      write _(:source, :spec, :ruby, 'tc_three.rb')
> +      JtestR.applies_to?(self).should be_true
> +    end
> +    define('four', :base_dir => 'four') do
> +      write _(:source, :spec, :ruby, 'ts_four.rb')
> +      JtestR.applies_to?(self).should be_true
> +    end
> +  end
> +
> +  it 'should apply to projects having rspec sources' do
> +    define('one', :base_dir => 'one') do
> +      write _(:source, :spec, :ruby, 'one_spec.rb')
> +      JtestR.applies_to?(self).should be_true
> +    end
> +  end
> +
> +  it 'should apply to projects having expectations sources' do
> +    define('one', :base_dir => 'one') do
> +      write _(:source, :spec, :ruby, 'one_expect.rb')
> +      JtestR.applies_to?(self).should be_true
> +    end
> +  end
> +
> +  it 'should apply to projects having junit sources' do
> +    define('one', :base_dir => 'one') do
> +      write _(:source, :test, :java, 'example/OneTest.java', <<-JAVA)
> +        package example;
> +        public class OneTest extends junit.framework.TestCase { }
> +      JAVA
> +      JtestR.applies_to?(self).should be_true
> +    end
> +  end
> +
> +  it 'should apply to projects having testng sources' do
> +    define('one', :base_dir => 'one') do
> +      write _(:source, :test, :java, 'example/OneTest.java', <<-JAVA)
> +        package example;
> +        public class OneTest {
> +           @org.testng.annotations.Test
> +           public void testNothing() {}
> +        }
> +      JAVA
> +      JtestR.applies_to?(self).should be_true
> +    end
> +  end
> +
> +  it 'should use a java compiler if java sources found' do
> +    foo do
> +      write _(:source, :spec, :java, 'Something.java'), 'public class Something {}'
> +      test.compile.language.should eql(:java)
> +    end
> +  end
> +
> +  it 'should load user jtestr_config.rb' do
> +    foo do
> +      hello = _('hello')
> +      write('src/spec/ruby/jtestr_config.rb', "File.open('#{hello}', 'w') { |f| f.write
'HELLO' }")
> +      test.invoke
> +      File.exist?(hello).should == true
> +      File.read(hello).should == 'HELLO'
> +    end
> +  end
> +
> +  it 'should run junit tests' do
> +    write('src/test/java/example/SuccessTest.java', <<-JAVA)
> +        package example;
> +        public class SuccessTest extends junit.framework.TestCase {
> +           public void testSuccess() { assertTrue(true); }
> +        }
> +    JAVA
> +    write('src/test/java/example/FailureTest.java', <<-JAVA)
> +        package example;
> +        public class FailureTest extends junit.framework.TestCase {
> +           public void testFailure() { assertTrue(false); }
> +        }
> +    JAVA
> +    foo do
> +      lambda { test.invoke }.should raise_error(/Tests failed/)
> +      test.tests.should include('example.SuccessTest', 'example.FailureTest')
> +      test.failed_tests.should include('example.FailureTest')
> +      test.passed_tests.should include('example.SuccessTest')
> +    end
> +  end
> +
> +  it 'should run testng tests' do
> +    write('src/test/java/example/Success.java', <<-JAVA)
> +        package example;
> +        public class Success {
> +          @org.testng.annotations.Test
> +          public void annotated() { org.testng.Assert.assertTrue(true); }
> +        }
> +    JAVA
> +    write('src/test/java/example/Failure.java', <<-JAVA)
> +        package example;
> +        public class Failure {
> +          @org.testng.annotations.Test
> +          public void annotated() { org.testng.Assert.fail("FAIL"); }
> +        }
> +    JAVA
> +    foo do
> +      lambda { test.invoke }.should raise_error(/Tests failed/)
> +      test.tests.should include('example.Success', 'example.Failure')
> +      test.failed_tests.should include('example.Failure')
> +      test.passed_tests.should include('example.Success')
> +    end
> +  end
> +
> +  it 'should run test_unit' do
> +    success = File.expand_path('src/spec/ruby/success_test.rb')
> +    write(success, <<-TESTUNIT)
> +      require 'test/unit'
> +      class TC_Success < Test::Unit::TestCase
> +        def test_success
> +          assert true
> +        end
> +      end
> +    TESTUNIT
> +    failure = File.expand_path('src/spec/ruby/failure_test.rb')
> +    write(failure, <<-TESTUNIT)
> +      require 'test/unit'
> +      class TC_Failure < Test::Unit::TestCase
> +        def test_failure
> +          assert false
> +        end
> +      end
> +    TESTUNIT
> +    error = File.expand_path('src/spec/ruby/error_test.rb')
> +    write(error, <<-TESTUNIT)
> +      require 'test/unit'
> +      class TC_Error < Test::Unit::TestCase
> +        def test_error
> +          eval('lambda')
> +        end
> +      end
> +    TESTUNIT
> +    foo do
> +      lambda { test.invoke }.should raise_error(/Tests failed/)
> +      test.tests.should include(success, failure, error)
> +      test.failed_tests.should include(failure, error)
> +      test.passed_tests.should include(success)
> +    end
> +  end
> +
> +  it 'should run expectations' do
> +    success = File.expand_path('src/spec/ruby/success_expect.rb')
> +    write(success, 'Expectations { expect(true) { true } }')
> +    failure = File.expand_path('src/spec/ruby/failure_expect.rb')
> +    write(failure, 'Expectations { expect(true) { false } }')
> +    error = File.expand_path('src/spec/ruby/error_expect.rb')
> +    write(error, 'Expectations { expect(nil) { eval("lambda") } }')
> +    foo do
> +      lambda { test.invoke }.should raise_error(/Tests failed/)
> +      test.tests.should include(success, failure, error)
> +      test.failed_tests.should include(failure, error)
> +      test.passed_tests.should include(success)
> +    end
> +  end
> +
> +  it 'should run rspecs' do
> +    success = File.expand_path('src/spec/ruby/success_spec.rb')
> +    write(success, 'describe("success") { it("is true") { nil.should be_nil } }')
> +    failure = File.expand_path('src/spec/ruby/failure_spec.rb')
> +    write(failure, 'describe("failure") { it("is false") { true.should == false } }')
> +    error = File.expand_path('src/spec/ruby/error_spec.rb')
> +    write(error, 'describe("error") { it("raises") { eval("lambda") } }')
> +    foo do
> +      lambda { test.invoke }.should raise_error(/Tests failed/)
> +      test.tests.should include(success, failure, error)
> +      test.failed_tests.should include(failure, error)
> +      test.passed_tests.should include(success)
> +    end
> +  end
> +
>
>  end # JtestR
>
>
>
>

Mime
View raw message