buildr 1.3.5-x86-mswin32 → 1.4.0-x86-mswin32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +153 -8
- data/README.rdoc +1 -1
- data/addon/buildr/antlr.rb +5 -5
- data/addon/buildr/drb.rb +18 -18
- data/addon/buildr/hibernate.rb +18 -14
- data/addon/buildr/javacc.rb +4 -4
- data/addon/buildr/jetty.rb +5 -5
- data/addon/buildr/nailgun.rb +23 -23
- data/addon/buildr/openjpa.rb +1 -1
- data/addon/buildr/org/apache/buildr/BuildrNail$Main.class +0 -0
- data/addon/buildr/org/apache/buildr/BuildrNail.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper$1.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper$BuildrHandler.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper.class +0 -0
- data/addon/buildr/protobuf.rb +75 -0
- data/addon/buildr/xmlbeans.rb +5 -5
- data/buildr.buildfile +2 -2
- data/buildr.gemspec +8 -7
- data/doc/_layouts/default.html +2 -2
- data/doc/artifacts.textile +4 -4
- data/doc/building.textile +35 -3
- data/doc/contributing.textile +5 -0
- data/doc/download.textile +16 -5
- data/doc/extending.textile +38 -12
- data/doc/installing.textile +6 -5
- data/doc/languages.textile +182 -42
- data/doc/more_stuff.textile +2 -2
- data/doc/packaging.textile +14 -15
- data/doc/projects.textile +7 -2
- data/doc/quick_start.textile +4 -4
- data/doc/scripts/buildr-git.rb +63 -63
- data/doc/scripts/gitflow.rb +21 -21
- data/doc/settings_profiles.textile +9 -2
- data/doc/testing.textile +16 -5
- data/etc/KEYS +38 -0
- data/lib/buildr.rb +1 -1
- data/lib/buildr/core.rb +1 -0
- data/lib/buildr/core/application.rb +33 -27
- data/lib/buildr/core/build.rb +41 -28
- data/lib/buildr/core/cc.rb +172 -0
- data/lib/buildr/core/checks.rb +1 -1
- data/lib/buildr/core/common.rb +7 -6
- data/lib/buildr/core/compile.rb +7 -8
- data/lib/buildr/core/doc.rb +263 -0
- data/lib/buildr/core/environment.rb +6 -6
- data/lib/buildr/core/filter.rb +77 -35
- data/lib/buildr/core/generate.rb +7 -7
- data/lib/buildr/core/help.rb +1 -1
- data/lib/buildr/core/osx.rb +6 -6
- data/lib/buildr/core/progressbar.rb +4 -4
- data/lib/buildr/core/project.rb +144 -36
- data/lib/buildr/core/shell.rb +34 -34
- data/lib/buildr/core/test.rb +89 -20
- data/lib/buildr/core/transports.rb +8 -7
- data/lib/buildr/core/util.rb +77 -23
- data/lib/buildr/groovy/bdd.rb +5 -5
- data/lib/buildr/groovy/compiler.rb +19 -15
- data/lib/buildr/groovy/shell.rb +6 -6
- data/lib/buildr/ide/eclipse.rb +148 -75
- data/lib/buildr/ide/eclipse/java.rb +3 -3
- data/lib/buildr/ide/eclipse/plugin.rb +8 -5
- data/lib/buildr/ide/eclipse/scala.rb +4 -2
- data/lib/buildr/ide/idea.rb +2 -2
- data/lib/buildr/ide/idea7x.rb +23 -4
- data/lib/buildr/java.rb +1 -0
- data/lib/buildr/java/ant.rb +4 -4
- data/lib/buildr/java/bdd.rb +51 -54
- data/lib/buildr/java/cobertura.rb +57 -35
- data/lib/buildr/java/commands.rb +14 -5
- data/lib/buildr/java/compiler.rb +3 -217
- data/lib/buildr/java/deprecated.rb +4 -4
- data/lib/buildr/java/doc.rb +70 -0
- data/lib/buildr/java/emma.rb +22 -22
- data/lib/buildr/java/jruby.rb +4 -4
- data/lib/buildr/java/jtestr_runner.rb.erb +27 -25
- data/lib/buildr/java/org/apache/buildr/JavaTestFilter.class +0 -0
- data/lib/buildr/java/org/apache/buildr/JavaTestFilter.java +8 -3
- data/lib/buildr/java/packaging.rb +30 -29
- data/lib/buildr/java/pom.rb +4 -4
- data/lib/buildr/java/rjb.rb +6 -6
- data/lib/buildr/java/test_result.rb +61 -85
- data/lib/buildr/java/tests.rb +44 -27
- data/lib/buildr/java/version_requirement.rb +8 -8
- data/lib/buildr/packaging/archive.rb +55 -22
- data/lib/buildr/packaging/artifact.rb +75 -36
- data/lib/buildr/packaging/artifact_namespace.rb +90 -78
- data/lib/buildr/packaging/artifact_search.rb +5 -5
- data/lib/buildr/packaging/gems.rb +11 -7
- data/lib/buildr/packaging/package.rb +10 -7
- data/lib/buildr/packaging/tar.rb +14 -14
- data/lib/buildr/packaging/version_requirement.rb +30 -10
- data/lib/buildr/packaging/ziptask.rb +51 -13
- data/lib/buildr/scala.rb +1 -0
- data/lib/buildr/scala/bdd.rb +25 -20
- data/lib/buildr/scala/compiler.rb +87 -40
- data/lib/buildr/scala/doc.rb +106 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.class +0 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.java +57 -0
- data/lib/buildr/scala/shell.rb +14 -9
- data/lib/buildr/scala/tests.rb +33 -26
- data/lib/buildr/shell.rb +33 -33
- data/rakelib/all-in-one.rake +113 -0
- data/rakelib/checks.rake +1 -1
- data/rakelib/doc.rake +7 -0
- data/rakelib/package.rake +1 -1
- data/rakelib/release.rake +9 -6
- data/rakelib/rspec.rake +26 -7
- data/rakelib/setup.rake +15 -3
- data/rakelib/stage.rake +18 -11
- data/spec/addon/drb_spec.rb +25 -25
- data/spec/core/application_spec.rb +111 -21
- data/spec/core/build_spec.rb +16 -15
- data/spec/core/cc_spec.rb +174 -0
- data/spec/core/checks_spec.rb +34 -34
- data/spec/core/common_spec.rb +51 -5
- data/spec/core/compile_spec.rb +89 -14
- data/spec/core/extension_spec.rb +127 -19
- data/spec/core/generate_spec.rb +2 -2
- data/spec/core/project_spec.rb +10 -10
- data/spec/core/test_spec.rb +144 -35
- data/spec/core/transport_spec.rb +8 -8
- data/spec/core/util_spec.rb +63 -5
- data/spec/groovy/bdd_spec.rb +5 -5
- data/spec/groovy/compiler_spec.rb +29 -18
- data/spec/ide/eclipse_spec.rb +185 -9
- data/spec/ide/idea7x_spec.rb +22 -10
- data/spec/java/ant_spec.rb +9 -5
- data/spec/java/bdd_spec.rb +29 -37
- data/spec/java/cobertura_spec.rb +12 -12
- data/spec/java/commands_spec.rb +34 -0
- data/spec/java/compiler_spec.rb +53 -53
- data/spec/java/emma_spec.rb +11 -11
- data/spec/java/java_spec.rb +10 -10
- data/spec/java/packaging_spec.rb +67 -20
- data/spec/java/test_coverage_helper.rb +18 -18
- data/spec/java/tests_spec.rb +13 -9
- data/spec/packaging/archive_spec.rb +187 -20
- data/spec/packaging/artifact_namespace_spec.rb +172 -83
- data/spec/packaging/artifact_spec.rb +83 -18
- data/spec/packaging/packaging_spec.rb +41 -14
- data/spec/sandbox.rb +23 -12
- data/spec/scala/bdd_spec.rb +13 -8
- data/spec/scala/compiler_spec.rb +18 -13
- data/spec/scala/scala.rb +3 -3
- data/spec/scala/tests_spec.rb +46 -24
- data/spec/spec_helpers.rb +28 -10
- data/spec/version_requirement_spec.rb +25 -11
- metadata +149 -133
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner$.class +0 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.scala +0 -35
- data/rakelib/stage.rake~ +0 -213
data/spec/core/generate_spec.rb
CHANGED
@@ -18,13 +18,13 @@ require File.join(File.dirname(__FILE__), '../spec_helpers')
|
|
18
18
|
|
19
19
|
|
20
20
|
describe Buildr::Generate do
|
21
|
-
|
21
|
+
|
22
22
|
describe 'Generated buildfile' do
|
23
23
|
it 'should be a legal buildfile' do
|
24
24
|
File.open('buildfile', 'w') { |file| file.write Generate.from_directory(Dir.pwd).join("\n") }
|
25
25
|
lambda { Buildr.application.run }.should_not raise_error
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
it 'should not contain NEXT_VERSION because it was removed in buildr 1.3.3' do
|
29
29
|
buildfile = Generate.from_directory(Dir.pwd)
|
30
30
|
buildfile.each { |line| line.should_not include('NEXT_VERSION')}
|
data/spec/core/project_spec.rb
CHANGED
@@ -45,7 +45,7 @@ describe Project do
|
|
45
45
|
foo.should be(project('foo'))
|
46
46
|
bar.should be(project('bar'))
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
it 'should show up in projects list if defined' do
|
50
50
|
define('foo')
|
51
51
|
projects.map(&:name).should include('foo')
|
@@ -206,7 +206,7 @@ describe Layout do
|
|
206
206
|
@layout.expand(:foo, nil, :bar).should eql('none')
|
207
207
|
@layout.expand(nil, :foo).should eql('foo')
|
208
208
|
end
|
209
|
-
|
209
|
+
|
210
210
|
it 'should return nil if path not mapped' do
|
211
211
|
@layout[:foo].should be_nil
|
212
212
|
end
|
@@ -368,7 +368,7 @@ describe Project, '#on_define' do
|
|
368
368
|
define('foo') { define 'bar' }
|
369
369
|
scopes.should eql([['foo'], ['foo', 'bar']])
|
370
370
|
end
|
371
|
-
|
371
|
+
|
372
372
|
it 'should be removed in version 1.5 since it was deprecated in version 1.3' do
|
373
373
|
Buildr::VERSION.should < '1.5'
|
374
374
|
end
|
@@ -418,7 +418,7 @@ describe 'Sub-project' do
|
|
418
418
|
define 'foo' do
|
419
419
|
define 'bar'
|
420
420
|
define 'bar'
|
421
|
-
end
|
421
|
+
end
|
422
422
|
end.should raise_error
|
423
423
|
end
|
424
424
|
|
@@ -456,7 +456,7 @@ describe 'Sub-project' do
|
|
456
456
|
ordered << self.name
|
457
457
|
define('bar') { ordered << self.name }
|
458
458
|
define('baz') { ordered << self.name }
|
459
|
-
end
|
459
|
+
end
|
460
460
|
ordered.should eql(['foo', 'foo:bar', 'foo:baz'])
|
461
461
|
end
|
462
462
|
|
@@ -466,7 +466,7 @@ describe 'Sub-project' do
|
|
466
466
|
ordered << self.name
|
467
467
|
define('bar') { project('foo:baz') ; ordered << self.name }
|
468
468
|
define('baz') { ordered << self.name }
|
469
|
-
end
|
469
|
+
end
|
470
470
|
ordered.should eql(['foo', 'foo:baz', 'foo:bar'])
|
471
471
|
end
|
472
472
|
|
@@ -475,7 +475,7 @@ describe 'Sub-project' do
|
|
475
475
|
define 'foo' do
|
476
476
|
define('bar') { project('foo:baz') }
|
477
477
|
define('baz') { project('foo:bar') }
|
478
|
-
end
|
478
|
+
end
|
479
479
|
end.should raise_error(RuntimeError, /Circular dependency/)
|
480
480
|
end
|
481
481
|
end
|
@@ -645,7 +645,7 @@ describe Project, '#task' do
|
|
645
645
|
it 'should create a regular task' do
|
646
646
|
define('foo') { task('bar') }
|
647
647
|
Buildr.application.lookup('foo:bar').should_not be_nil
|
648
|
-
end
|
648
|
+
end
|
649
649
|
|
650
650
|
it 'should return a task defined in the project' do
|
651
651
|
define('foo') { task('bar') }
|
@@ -661,7 +661,7 @@ describe Project, '#task' do
|
|
661
661
|
define('foo') { task('bar') }
|
662
662
|
project('foo').task('bar').name.should eql('foo:bar')
|
663
663
|
end
|
664
|
-
|
664
|
+
|
665
665
|
it 'should ignore namespace if starting with color' do
|
666
666
|
define 'foo' do
|
667
667
|
task(':bar').name.should == 'bar'
|
@@ -744,7 +744,7 @@ end
|
|
744
744
|
|
745
745
|
|
746
746
|
=begin
|
747
|
-
describe Buildr::Generate do
|
747
|
+
describe Buildr::Generate do
|
748
748
|
it 'should be able to create buildfile from directory structure' do
|
749
749
|
write 'src/main/java/Foo.java', ''
|
750
750
|
write 'one/two/src/main/java/Foo.java', ''
|
data/spec/core/test_spec.rb
CHANGED
@@ -110,12 +110,22 @@ describe Buildr::TestTask do
|
|
110
110
|
test_task.compile.dependencies.should include(artifact('acme:example:jar:1.0'))
|
111
111
|
end
|
112
112
|
|
113
|
+
it 'should respond to deprecated classpath' do
|
114
|
+
test_task.classpath = artifact('acme:example:jar:1.0')
|
115
|
+
test_task.classpath.should be(artifact('acme:example:jar:1.0'))
|
116
|
+
end
|
117
|
+
|
118
|
+
it 'should respond to dependencies' do
|
119
|
+
test_task.dependencies = artifact('acme:example:jar:1.0')
|
120
|
+
test_task.dependencies.should be(artifact('acme:example:jar:1.0'))
|
121
|
+
end
|
122
|
+
|
113
123
|
it 'should respond to :with and add artifacfs to task dependencies' do
|
114
124
|
test_task.with 'test.jar', 'acme:example:jar:1.0'
|
115
125
|
test_task.dependencies.should include(File.expand_path('test.jar'))
|
116
126
|
test_task.dependencies.should include(artifact('acme:example:jar:1.0'))
|
117
127
|
end
|
118
|
-
|
128
|
+
|
119
129
|
it 'should response to :options and return test framework options' do
|
120
130
|
test_task.using :foo=>'bar'
|
121
131
|
test_task.options[:foo].should eql('bar')
|
@@ -216,9 +226,9 @@ describe Buildr::TestTask do
|
|
216
226
|
define('foo').test.dependencies.should include(project('foo').resources.target)
|
217
227
|
end
|
218
228
|
|
219
|
-
it 'should
|
229
|
+
it 'should use the test compile dependencies' do
|
220
230
|
define('foo') { test.compile.using(:javac).with 'group:id:jar:1.0' }
|
221
|
-
project('foo').test.dependencies.
|
231
|
+
project('foo').test.dependencies.should include(artifact('group:id:jar:1.0'))
|
222
232
|
end
|
223
233
|
|
224
234
|
it 'should include the test compile target in its dependencies' do
|
@@ -252,7 +262,7 @@ describe Buildr::TestTask do
|
|
252
262
|
depends = project('foo').test.dependencies
|
253
263
|
depends.index(project('foo').test.resources.target).should < depends.index(project('foo').resources.target)
|
254
264
|
end
|
255
|
-
|
265
|
+
|
256
266
|
it 'should not have a last successful run timestamp before the tests are run' do
|
257
267
|
test_task.timestamp.should == Rake::EARLY
|
258
268
|
end
|
@@ -268,6 +278,14 @@ describe Buildr::TestTask do
|
|
268
278
|
mkpath project('foo').test.report_to.to_s
|
269
279
|
lambda { task('clean').invoke }.should change { File.exist?(project('foo').test.report_to.to_s) }.to(false)
|
270
280
|
end
|
281
|
+
|
282
|
+
it 'should only run tests explicitly specified if options.test is :only' do
|
283
|
+
Buildr.options.test = :only
|
284
|
+
write 'bar/src/main/java/Bar.java', 'public class Bar {}'
|
285
|
+
define('bar', :version=>'1.0', :base_dir=>'bar') { package :jar }
|
286
|
+
define('foo') { compile.with project('bar') }
|
287
|
+
lambda { task('foo:test').invoke rescue nil }.should_not run_tasks('bar:test')
|
288
|
+
end
|
271
289
|
end
|
272
290
|
|
273
291
|
|
@@ -279,7 +297,7 @@ describe Buildr::TestTask, 'with no tests' do
|
|
279
297
|
it 'should report no failed tests' do
|
280
298
|
lambda { verbose(true) { define('foo').test.invoke } }.should_not show_error(/fail/i)
|
281
299
|
end
|
282
|
-
|
300
|
+
|
283
301
|
it 'should return no failed tests' do
|
284
302
|
define('foo') { test.using(:junit) }
|
285
303
|
project('foo').test.invoke
|
@@ -319,7 +337,7 @@ describe Buildr::TestTask, 'with passing tests' do
|
|
319
337
|
it 'should report no failed tests' do
|
320
338
|
lambda { verbose(true) { test_task.invoke } }.should_not show_error(/fail/i)
|
321
339
|
end
|
322
|
-
|
340
|
+
|
323
341
|
it 'should return passed tests' do
|
324
342
|
test_task.invoke
|
325
343
|
test_task.passed_tests.should == ['PassingTest1', 'PassingTest2']
|
@@ -343,7 +361,7 @@ end
|
|
343
361
|
|
344
362
|
describe Buildr::TestTask, 'with failed test' do
|
345
363
|
include TestHelper
|
346
|
-
|
364
|
+
|
347
365
|
def test_task
|
348
366
|
@test_task ||= begin
|
349
367
|
define 'foo' do
|
@@ -365,6 +383,11 @@ describe Buildr::TestTask, 'with failed test' do
|
|
365
383
|
lambda { verbose(true) { test_task.invoke rescue nil } }.should show_error(/FailingTest/)
|
366
384
|
end
|
367
385
|
|
386
|
+
it 'should record failed tests' do
|
387
|
+
test_task.invoke rescue nil
|
388
|
+
File.read(project('foo').path_to('target', "#{test_task.framework}-failed")).should == 'FailingTest'
|
389
|
+
end
|
390
|
+
|
368
391
|
it 'should return failed tests' do
|
369
392
|
test_task.invoke rescue nil
|
370
393
|
test_task.failed_tests.should == ['FailingTest']
|
@@ -375,6 +398,11 @@ describe Buildr::TestTask, 'with failed test' do
|
|
375
398
|
test_task.passed_tests.should == ['PassingTest']
|
376
399
|
end
|
377
400
|
|
401
|
+
it 'should know what tests failed last time' do
|
402
|
+
test_task.invoke rescue nil
|
403
|
+
project('foo').test.last_failures.should == ['FailingTest']
|
404
|
+
end
|
405
|
+
|
378
406
|
it 'should not fail if fail_on_failure is false' do
|
379
407
|
test_task.using(:fail_on_failure=>false).invoke
|
380
408
|
lambda { test_task.invoke }.should_not raise_error
|
@@ -393,7 +421,7 @@ describe Buildr::TestTask, 'with failed test' do
|
|
393
421
|
it 'should execute teardown task' do
|
394
422
|
lambda { test_task.invoke rescue nil }.should run_task('foo:test:teardown')
|
395
423
|
end
|
396
|
-
|
424
|
+
|
397
425
|
it 'should not update the last successful run timestamp' do
|
398
426
|
a_second_ago = Time.now - 1
|
399
427
|
touch_last_successful_test_run test_task, a_second_ago
|
@@ -460,7 +488,7 @@ describe Buildr::Project, '#test' do
|
|
460
488
|
test.options[:environment].should == {}
|
461
489
|
end
|
462
490
|
end
|
463
|
-
|
491
|
+
|
464
492
|
it 'should clone options from parent project when using #options' do
|
465
493
|
define 'foo' do
|
466
494
|
define 'bar' do
|
@@ -476,14 +504,14 @@ describe Buildr::Project, '#test' do
|
|
476
504
|
test.options[:environment].should == {}
|
477
505
|
end
|
478
506
|
end
|
479
|
-
|
507
|
+
|
480
508
|
it 'should accept to set a test property in the top project' do
|
481
509
|
define 'foo' do
|
482
510
|
test.options[:properties][:foo] = 'bar'
|
483
511
|
end
|
484
512
|
project('foo').test.options[:properties][:foo].should == 'bar'
|
485
513
|
end
|
486
|
-
|
514
|
+
|
487
515
|
it 'should accept to set a test property in a subproject' do
|
488
516
|
define 'foo' do
|
489
517
|
define 'bar' do
|
@@ -492,7 +520,7 @@ describe Buildr::Project, '#test' do
|
|
492
520
|
end
|
493
521
|
project('foo:bar').test.options[:properties][:bar].should == 'baz'
|
494
522
|
end
|
495
|
-
|
523
|
+
|
496
524
|
it 'should not change options of unrelated projects when using #options' do
|
497
525
|
define 'foo' do
|
498
526
|
test.options[:properties][:foo] = 'bar'
|
@@ -501,7 +529,7 @@ describe Buildr::Project, '#test' do
|
|
501
529
|
test.options[:properties].should == {}
|
502
530
|
end
|
503
531
|
end
|
504
|
-
|
532
|
+
|
505
533
|
it "should run from project's build task" do
|
506
534
|
write 'src/main/java/Foo.java'
|
507
535
|
write 'src/test/java/FooTest.java'
|
@@ -584,7 +612,9 @@ describe Buildr::Project, '#test.resources' do
|
|
584
612
|
end
|
585
613
|
|
586
614
|
it 'should create target directory even if no files to copy' do
|
587
|
-
define('foo')
|
615
|
+
define('foo') do
|
616
|
+
test.resources.filter.into('resources')
|
617
|
+
end
|
588
618
|
lambda { file(File.expand_path('resources')).invoke }.should change { File.exist?('resources') }.to(true)
|
589
619
|
end
|
590
620
|
|
@@ -598,7 +628,7 @@ end
|
|
598
628
|
|
599
629
|
describe Buildr::TestTask, '#invoke' do
|
600
630
|
include TestHelper
|
601
|
-
|
631
|
+
|
602
632
|
def test_task
|
603
633
|
@test_task ||= define('foo') {
|
604
634
|
test.using(:junit)
|
@@ -608,7 +638,7 @@ describe Buildr::TestTask, '#invoke' do
|
|
608
638
|
end
|
609
639
|
}.test
|
610
640
|
end
|
611
|
-
|
641
|
+
|
612
642
|
it 'should require dependencies to exist' do
|
613
643
|
lambda { test_task.with('no-such.jar').invoke }.should \
|
614
644
|
raise_error(RuntimeError, /Don't know how to build/)
|
@@ -622,12 +652,12 @@ describe Buildr::TestTask, '#invoke' do
|
|
622
652
|
it 'should run tests if they have never run' do
|
623
653
|
lambda { test_task.invoke }.should run_task('foo:test')
|
624
654
|
end
|
625
|
-
|
655
|
+
|
626
656
|
it 'should not run tests if test option is off' do
|
627
657
|
Buildr.options.test = false
|
628
658
|
lambda { test_task.invoke }.should_not run_task('foo:test')
|
629
659
|
end
|
630
|
-
|
660
|
+
|
631
661
|
describe 'when there was a successful test run already' do
|
632
662
|
before do
|
633
663
|
@a_second_ago = Time.now - 1
|
@@ -635,57 +665,69 @@ describe Buildr::TestTask, '#invoke' do
|
|
635
665
|
target = ['classes/Foo.class', 'resources/config.xml', 'test/classes/FooTest.class', 'test/resources/config-test.xml'].map { |f| File.join('target', f) }
|
636
666
|
files = ['buildfile'] + src + target
|
637
667
|
files.each { |file| write file }
|
638
|
-
(
|
668
|
+
dirs = (src + target).map { |file| file.pathmap('%d') }
|
669
|
+
(files + dirs ).each { |path| File.utime(@a_second_ago, @a_second_ago, path) }
|
639
670
|
touch_last_successful_test_run test_task, @a_second_ago
|
640
671
|
end
|
641
|
-
|
672
|
+
|
642
673
|
it 'should not run tests if nothing changed' do
|
643
674
|
lambda { test_task.invoke }.should_not run_task('foo:test')
|
644
675
|
end
|
645
|
-
|
676
|
+
|
646
677
|
it 'should run tests if options.test is :all' do
|
647
678
|
Buildr.options.test = :all
|
648
679
|
lambda { test_task.invoke }.should run_task('foo:test')
|
649
680
|
end
|
650
|
-
|
681
|
+
|
651
682
|
it 'should run tests if main compile target changed' do
|
652
683
|
touch project('foo').compile.target.to_s
|
653
684
|
lambda { test_task.invoke }.should run_task('foo:test')
|
654
685
|
end
|
655
|
-
|
686
|
+
|
656
687
|
it 'should run tests if test compile target changed' do
|
657
688
|
touch test_task.compile.target.to_s
|
658
689
|
lambda { test_task.invoke }.should run_task('foo:test')
|
659
690
|
end
|
660
|
-
|
691
|
+
|
661
692
|
it 'should run tests if main resources changed' do
|
662
693
|
touch project('foo').resources.target.to_s
|
663
694
|
lambda { test_task.invoke }.should run_task('foo:test')
|
664
695
|
end
|
665
|
-
|
696
|
+
|
666
697
|
it 'should run tests if test resources changed' do
|
667
698
|
touch test_task.resources.target.to_s
|
668
699
|
lambda { test_task.invoke }.should run_task('foo:test')
|
669
700
|
end
|
670
|
-
|
701
|
+
|
671
702
|
it 'should run tests if compile-dependent project changed' do
|
672
703
|
write 'bar/src/main/java/Bar.java', 'public class Bar {}'
|
673
704
|
define('bar', :version=>'1.0', :base_dir=>'bar') { package :jar }
|
674
705
|
project('foo').compile.with project('bar')
|
675
706
|
lambda { test_task.invoke }.should run_task('foo:test')
|
676
707
|
end
|
677
|
-
|
708
|
+
|
678
709
|
it 'should run tests if test-dependent project changed' do
|
679
710
|
write 'bar/src/main/java/Bar.java', 'public class Bar {}'
|
680
711
|
define('bar', :version=>'1.0', :base_dir=>'bar') { package :jar }
|
681
712
|
test_task.with project('bar')
|
682
713
|
lambda { test_task.invoke }.should run_task('foo:test')
|
683
714
|
end
|
684
|
-
|
715
|
+
|
685
716
|
it 'should run tests if buildfile changed' do
|
686
717
|
touch 'buildfile'
|
718
|
+
test_task.should_receive(:run_tests)
|
687
719
|
lambda { test_task.invoke }.should run_task('foo:test')
|
688
720
|
end
|
721
|
+
|
722
|
+
it 'should not run tests if buildfile changed but IGNORE_BUILDFILE is true' do
|
723
|
+
begin
|
724
|
+
ENV["IGNORE_BUILDFILE"] = "true"
|
725
|
+
test_task.should_not_receive(:run_tests)
|
726
|
+
test_task.invoke
|
727
|
+
ensure
|
728
|
+
ENV["IGNORE_BUILDFILE"] = nil
|
729
|
+
end
|
730
|
+
end
|
689
731
|
end
|
690
732
|
end
|
691
733
|
|
@@ -713,9 +755,38 @@ describe Rake::Task, 'test' do
|
|
713
755
|
it 'should ignore failure if options.test is :all' do
|
714
756
|
define('foo') { test { fail } }
|
715
757
|
define('bar') { test { fail } }
|
716
|
-
options.test = :all
|
758
|
+
options.test = :all
|
717
759
|
lambda { task('test').invoke rescue nil }.should run_tasks('foo:test', 'bar:test')
|
718
760
|
end
|
761
|
+
|
762
|
+
it 'should ignore failure in subprojects if options.test is :all' do
|
763
|
+
define('foo') {
|
764
|
+
define('p1') { test { fail } }
|
765
|
+
define('p2') { test { } }
|
766
|
+
define('p3') { test { fail } }
|
767
|
+
}
|
768
|
+
define('bar') { test { fail } }
|
769
|
+
options.test = :all
|
770
|
+
lambda { task('test').invoke rescue nil }.should run_tasks('foo:p1:test', 'foo:p2:test', 'foo:p3:test', 'bar:test')
|
771
|
+
end
|
772
|
+
|
773
|
+
it 'should ignore failure in subprojects if environment variable test is \'all\'' do
|
774
|
+
define('foo') {
|
775
|
+
define('p1') { test { fail } }
|
776
|
+
define('p2') { test { } }
|
777
|
+
define('p3') { test { fail } }
|
778
|
+
}
|
779
|
+
define('bar') { test { fail } }
|
780
|
+
ENV['test'] = 'all'
|
781
|
+
lambda { task('test').invoke rescue nil }.should run_tasks('foo:p1:test', 'foo:p2:test', 'foo:p3:test', 'bar:test')
|
782
|
+
end
|
783
|
+
|
784
|
+
it 'should ignore failure if options.test is :all and target is build task ' do
|
785
|
+
define('foo') { test { fail } }
|
786
|
+
define('bar') { test { fail } }
|
787
|
+
options.test = :all
|
788
|
+
lambda { task('build').invoke rescue nil }.should run_tasks('foo:test', 'bar:test')
|
789
|
+
end
|
719
790
|
|
720
791
|
it 'should ignore failure if environment variable test is \'all\'' do
|
721
792
|
define('foo') { test { fail } }
|
@@ -751,12 +822,18 @@ describe Rake::Task, 'test' do
|
|
751
822
|
ENV['TEST'] = 'no'
|
752
823
|
lambda { task('test').invoke rescue nil }.should_not run_tasks('foo:test', 'bar:test')
|
753
824
|
end
|
754
|
-
end
|
755
825
|
|
826
|
+
it "should not compile tests if environment variable test is 'no'" do
|
827
|
+
write "src/test/java/HelloTest.java", "public class HelloTest { public void testTest() {}}"
|
828
|
+
define('foo') { test { fail } }
|
829
|
+
ENV['test'] = 'no'
|
830
|
+
lambda { task('test').invoke rescue nil }.should_not run_tasks('foo:test:compile')
|
831
|
+
end
|
832
|
+
end
|
756
833
|
|
757
834
|
describe 'test rule' do
|
758
835
|
include TestHelper
|
759
|
-
|
836
|
+
|
760
837
|
it 'should execute test task on local project' do
|
761
838
|
define('foo') { define 'bar' }
|
762
839
|
lambda { task('test:something').invoke }.should run_task('foo:test')
|
@@ -816,7 +893,7 @@ describe 'test rule' do
|
|
816
893
|
define 'foo'
|
817
894
|
task('test:Something').invoke
|
818
895
|
end
|
819
|
-
|
896
|
+
|
820
897
|
it 'should execute the named tests even if the test task is not needed' do
|
821
898
|
define 'foo' do
|
822
899
|
test.using(:junit)
|
@@ -826,7 +903,7 @@ describe 'test rule' do
|
|
826
903
|
task('test:something').invoke
|
827
904
|
project('foo').test.tests.should include('something')
|
828
905
|
end
|
829
|
-
|
906
|
+
|
830
907
|
it 'should not update the last successful test run timestamp' do
|
831
908
|
define 'foo' do
|
832
909
|
test.using(:junit)
|
@@ -839,6 +916,38 @@ describe 'test rule' do
|
|
839
916
|
end
|
840
917
|
end
|
841
918
|
|
919
|
+
describe 'test failed' do
|
920
|
+
include TestHelper
|
921
|
+
|
922
|
+
def test_task
|
923
|
+
@test_task ||= begin
|
924
|
+
define 'foo' do
|
925
|
+
test.using(:junit)
|
926
|
+
test.instance_eval do
|
927
|
+
@framework.stub!(:tests).and_return(['FailingTest', 'PassingTest'])
|
928
|
+
@framework.stub!(:run).and_return(['PassingTest'])
|
929
|
+
end
|
930
|
+
end
|
931
|
+
project('foo').test
|
932
|
+
end
|
933
|
+
end
|
934
|
+
|
935
|
+
it 'should run the tests that failed the last time' do
|
936
|
+
define 'foo' do
|
937
|
+
test.using(:junit)
|
938
|
+
test.instance_eval do
|
939
|
+
@framework.stub!(:tests).and_return(['FailingTest', 'PassingTest'])
|
940
|
+
@framework.stub!(:run).and_return(['PassingTest'])
|
941
|
+
end
|
942
|
+
end
|
943
|
+
write project('foo').path_to(:target, "junit-failed"), "FailingTest"
|
944
|
+
task('test:failed').invoke rescue nil
|
945
|
+
project('foo').test.tests.should include('FailingTest')
|
946
|
+
project('foo').test.tests.should_not include('PassingTest')
|
947
|
+
end
|
948
|
+
|
949
|
+
end
|
950
|
+
|
842
951
|
|
843
952
|
describe Buildr::Options, 'test' do
|
844
953
|
it 'should be true by default' do
|
@@ -972,7 +1081,7 @@ describe Rake::Task, 'integration' do
|
|
972
1081
|
end
|
973
1082
|
|
974
1083
|
it 'should run test cases marked for integration' do
|
975
|
-
write 'src/test/java/FailingTest.java',
|
1084
|
+
write 'src/test/java/FailingTest.java',
|
976
1085
|
'public class FailingTest extends junit.framework.TestCase { public void testNothing() { assertTrue(false); } }'
|
977
1086
|
define('foo') { test.using :integration }
|
978
1087
|
lambda { task('test').invoke }.should_not raise_error
|
@@ -996,7 +1105,7 @@ describe Rake::Task, 'integration' do
|
|
996
1105
|
end
|
997
1106
|
|
998
1107
|
it 'should not fail if test=all' do
|
999
|
-
write 'src/test/java/FailingTest.java',
|
1108
|
+
write 'src/test/java/FailingTest.java',
|
1000
1109
|
'public class FailingTest extends junit.framework.TestCase { public void testNothing() { assertTrue(false); } }'
|
1001
1110
|
define('foo') { test.using :integration }
|
1002
1111
|
options.test = :all
|