buildr 1.3.1.1-java → 1.3.2-java
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 +26 -0
- data/NOTICE +3 -5
- data/README +1 -0
- data/Rakefile +4 -3
- data/addon/buildr/nailgun.rb +3 -2
- data/addon/buildr/xmlbeans.rb +1 -1
- data/buildr.gemspec +7 -7
- data/doc/css/syntax.css +40 -31
- data/doc/pages/building.textile +0 -1
- data/doc/pages/contributing.textile +21 -1
- data/doc/pages/download.textile +18 -5
- data/doc/pages/getting_started.textile +23 -12
- data/doc/pages/index.textile +1 -1
- data/doc/pages/packaging.textile +10 -7
- data/doc/pages/projects.textile +3 -3
- data/doc/pages/whats_new.textile +19 -0
- data/doc/scripts/install-jruby.sh +1 -1
- data/doc/scripts/install-linux.sh +4 -4
- data/lib/buildr.rb +1 -9
- data/lib/buildr/core/application.rb +11 -0
- data/lib/buildr/core/application_cli.rb +6 -1
- data/lib/buildr/core/build.rb +1 -1
- data/lib/buildr/core/compile.rb +6 -6
- data/lib/buildr/core/project.rb +1 -0
- data/lib/buildr/core/test.rb +3 -3
- data/lib/buildr/core/transports.rb +4 -2
- data/lib/buildr/core/util.rb +2 -0
- data/lib/buildr/ide/idea7x.rb +13 -12
- data/lib/buildr/java/compilers.rb +2 -4
- data/lib/buildr/java/org/apache/buildr/JavaTestFilter.class +0 -0
- data/lib/buildr/java/org/apache/buildr/JavaTestFilter.java +4 -1
- data/lib/buildr/java/test_frameworks.rb +162 -3
- data/rakelib/apache.rake +14 -0
- data/rakelib/package.rake +28 -0
- data/rakelib/setup.rake +3 -2
- data/spec/compile_spec.rb +9 -8
- data/spec/java_test_frameworks_spec.rb +19 -0
- data/spec/project_spec.rb +12 -0
- data/spec/sandbox.rb +4 -0
- data/spec/scala_compilers_spec.rb +1 -12
- data/spec/scala_test_frameworks_spec.rb +216 -0
- data/spec/test_spec.rb +20 -4
- data/spec/transport_spec.rb +30 -14
- data/spec/version_requirement_spec.rb +5 -1
- metadata +23 -9
data/rakelib/apache.rake
CHANGED
@@ -21,6 +21,20 @@ require 'sha1'
|
|
21
21
|
# Tasks specific to Apache projects (license, release, etc).
|
22
22
|
namespace 'apache' do
|
23
23
|
|
24
|
+
desc 'Upload snapshot packages over to people.apache.org'
|
25
|
+
task 'snapshot'=>'package' do
|
26
|
+
rm_rf 'snapshot' # Always start with empty directory
|
27
|
+
puts "Copying existing gems from Apache"
|
28
|
+
sh 'rsync', '--progress', '--recursive', 'people.apache.org:public_html/buildr/snapshot', './'
|
29
|
+
puts "Copying new gems over"
|
30
|
+
cp FileList['pkg/{*.gem,*.tgz,*.zip}'], 'snapshot/gems'
|
31
|
+
puts "Generating gem index ..."
|
32
|
+
sh 'gem', 'generate_index', '--directory', 'snapshot'
|
33
|
+
puts "Copying gem and index back to Apache"
|
34
|
+
sh 'rsync', '--progress', '--recursive', 'snapshot', 'people.apache.org:public_html/buildr/'
|
35
|
+
end
|
36
|
+
|
37
|
+
|
24
38
|
desc 'Check that source files contain the Apache license'
|
25
39
|
task 'license' do |task|
|
26
40
|
print 'Checking that files contain the Apache license ... '
|
data/rakelib/package.rake
CHANGED
@@ -42,3 +42,31 @@ task 'uninstall' do |task|
|
|
42
42
|
sh *args
|
43
43
|
puts 'Done'
|
44
44
|
end
|
45
|
+
|
46
|
+
|
47
|
+
desc 'Look for new dependencies, check transitive dependencies'
|
48
|
+
task 'dependency' do
|
49
|
+
# Find if anything has a more recent dependency. These are not errors, just reports.
|
50
|
+
for dep in spec.dependencies
|
51
|
+
current = Gem::SourceInfoCache.search(dep, true, true).last
|
52
|
+
latest = Gem::SourceInfoCache.search(Gem::Dependency.new(dep.name, '>0'), true, true).last
|
53
|
+
puts "A new version of #{dep.name} is available, #{latest.version} replaces #{current.version}" if latest.version > current.version
|
54
|
+
end
|
55
|
+
|
56
|
+
# Returns orderd list of transitive dependencies for the given dependency.
|
57
|
+
transitive = lambda { |depend|
|
58
|
+
dep_spec = Gem::SourceIndex.from_installed_gems.search(depend).last
|
59
|
+
dep_spec.dependencies.map { |trans| transitive[trans].push(trans) }.flatten.uniq }
|
60
|
+
# For each dependency, make sure *all* its transitive dependencies are listed
|
61
|
+
# as a Buildr dependency, and order is preserved.
|
62
|
+
spec.dependencies.each_with_index do |dep, index|
|
63
|
+
puts "checking #{dep.name}"
|
64
|
+
for trans in transitive[dep]
|
65
|
+
matching = spec.dependencies.find { |existing| trans =~ existing }
|
66
|
+
fail "#{trans} required by #{dep} and missing from spec" unless matching
|
67
|
+
fail "#{trans} must come before #{dep} in dependency list" unless spec.dependencies.index(matching) < index
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
task 'stage:check'=>'dependency'
|
data/rakelib/setup.rake
CHANGED
@@ -36,15 +36,16 @@ def which(name)
|
|
36
36
|
end
|
37
37
|
|
38
38
|
|
39
|
-
def install_gem(name, ver_requirement =
|
39
|
+
def install_gem(name, ver_requirement = ['> 0'])
|
40
40
|
dep = Gem::Dependency.new(name, ver_requirement)
|
41
41
|
rb_bin = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])
|
42
42
|
if Gem::SourceIndex.from_installed_gems.search(dep).empty?
|
43
43
|
spec = Gem::SourceInfoCache.search(dep, true, true).last
|
44
44
|
fail "#{dep} not found in local or remote repository!" unless spec
|
45
|
-
puts "Installing #{spec} ..."
|
45
|
+
puts "Installing #{spec.full_name} ..."
|
46
46
|
args = [rb_bin, '-S', 'gem', 'install', spec.name, '-v', spec.version.to_s]
|
47
47
|
args.unshift('sudo', 'env', 'JAVA_HOME=' + ENV['JAVA_HOME']) unless windows?
|
48
|
+
args = args.map{|a| a.inspect}.join(' ') if windows?
|
48
49
|
sh *args
|
49
50
|
end
|
50
51
|
end
|
data/spec/compile_spec.rb
CHANGED
@@ -23,19 +23,18 @@ module CompilerHelper
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def sources
|
26
|
-
@sources ||= ['Test1.java', 'Test2.java'].map { |f| File.join('src/java', f) }.
|
26
|
+
@sources ||= ['Test1.java', 'Test2.java'].map { |f| File.join('src/main/java', f) }.
|
27
27
|
each { |src| write src, "class #{src.pathmap('%n')} {}" }
|
28
28
|
end
|
29
29
|
|
30
30
|
def jars
|
31
31
|
@jars ||= begin
|
32
|
-
write 'src/main/java/Dependency.java', 'class Dependency { }'
|
33
|
-
define 'jars', :version=>'1.0' do
|
34
|
-
compile.into('dependency')
|
32
|
+
write 'jars/src/main/java/Dependency.java', 'class Dependency { }'
|
33
|
+
define 'jars', :version=>'1.0', :base_dir => 'jars' do
|
35
34
|
package(:jar, :id=>'jar1')
|
36
35
|
package(:jar, :id=>'jar2')
|
37
36
|
end
|
38
|
-
project('jars').packages.
|
37
|
+
project('jars').packages.map(&:to_s)
|
39
38
|
end
|
40
39
|
end
|
41
40
|
end
|
@@ -188,7 +187,7 @@ describe Buildr::CompileTask, '#dependencies' do
|
|
188
187
|
end
|
189
188
|
|
190
189
|
it 'should allow artifacts' do
|
191
|
-
artifact('group:id:jar:1.0') { |task| mkpath File.dirname(task.to_s) ; cp jars.first.to_s, task.to_s }
|
190
|
+
artifact('group:id:jar:1.0') { |task| mkpath File.dirname(task.to_s) ; cp jars.first.to_s, task.to_s }.enhance jars
|
192
191
|
compile_task.from(sources).with('group:id:jar:1.0').into('classes').invoke
|
193
192
|
end
|
194
193
|
|
@@ -325,6 +324,7 @@ describe Buildr::CompileTask, '#invoke' do
|
|
325
324
|
end
|
326
325
|
|
327
326
|
it 'should force compilation if dependencies newer than compiled' do
|
327
|
+
jars; project('jars').task("package").invoke
|
328
328
|
# On my machine the times end up the same, so need to push dependencies in the past.
|
329
329
|
time = Time.now
|
330
330
|
sources.map { |src| src.pathmap("#{compile_task.target}/%n.class") }.
|
@@ -334,10 +334,11 @@ describe Buildr::CompileTask, '#invoke' do
|
|
334
334
|
end
|
335
335
|
|
336
336
|
it 'should not force compilation if dependencies older than compiled' do
|
337
|
+
jars; project('jars').task("package").invoke
|
337
338
|
time = Time.now
|
338
|
-
|
339
|
+
jars.each { |jar| File.utime(time - 1 , time - 1, jar) }
|
340
|
+
sources.map { |src| File.utime(time, time, src); src.pathmap("#{compile_task.target}/%n.class") }.
|
339
341
|
each { |kls| write kls ; File.utime(time, time, kls) }
|
340
|
-
jars.each { |jar| File.utime(time - 1, time - 1, jar) }
|
341
342
|
lambda { compile_task.from(sources).with(jars).invoke }.should_not run_task('foo:compile')
|
342
343
|
end
|
343
344
|
|
@@ -121,6 +121,25 @@ describe Buildr::JUnit do
|
|
121
121
|
project('foo').test.tests.should eql(['InnerClassTest'])
|
122
122
|
end
|
123
123
|
|
124
|
+
it 'should ignore abstract classes' do
|
125
|
+
write 'src/test/java/AbstractClassTest.java', <<-JAVA
|
126
|
+
public abstract class AbstractClassTest extends junit.framework.TestCase {
|
127
|
+
public void testNothing() { }
|
128
|
+
}
|
129
|
+
JAVA
|
130
|
+
define('foo').test.invoke
|
131
|
+
project('foo').test.tests.should be_empty
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'should ignore classes with no tests in them' do
|
135
|
+
write 'src/test/java/NoTests.java', <<-JAVA
|
136
|
+
public class NoTests {
|
137
|
+
}
|
138
|
+
JAVA
|
139
|
+
define('foo').test.invoke
|
140
|
+
project('foo').test.tests.should be_empty
|
141
|
+
end
|
142
|
+
|
124
143
|
it 'should pass when JUnit test case passes' do
|
125
144
|
write 'src/test/java/PassingTest.java', <<-JAVA
|
126
145
|
public class PassingTest extends junit.framework.TestCase {
|
data/spec/project_spec.rb
CHANGED
@@ -194,6 +194,18 @@ describe Layout do
|
|
194
194
|
@layout[:foo, :bar] = 'none'
|
195
195
|
@layout.expand(:foo, :bar).should eql('none')
|
196
196
|
end
|
197
|
+
|
198
|
+
it 'should map strings to path' do
|
199
|
+
@layout[:foo, "bar"] = 'none'
|
200
|
+
@layout.expand(:foo, :bar).should eql('none')
|
201
|
+
@layout.expand(:foo, 'bar').should eql('none')
|
202
|
+
end
|
203
|
+
|
204
|
+
it 'should ignore nil elements' do
|
205
|
+
@layout[:foo, :bar] = 'none'
|
206
|
+
@layout.expand(:foo, nil, :bar).should eql('none')
|
207
|
+
@layout.expand(nil, :foo).should eql('foo')
|
208
|
+
end
|
197
209
|
|
198
210
|
it 'should return nil if path not mapped' do
|
199
211
|
@layout[:foo].should be_nil
|
data/spec/sandbox.rb
CHANGED
@@ -19,8 +19,12 @@
|
|
19
19
|
# repository and cache these across test cases.
|
20
20
|
Buildr.application.instance_eval { @rakefile = File.expand_path('buildfile') }
|
21
21
|
repositories.remote << 'http://repo1.maven.org/maven2'
|
22
|
+
repositories.remote << 'http://scala-tools.org/repo-releases'
|
23
|
+
|
22
24
|
require 'buildr/java/groovyc'
|
23
25
|
Java.load # Anything added to the classpath.
|
26
|
+
task('buildr:scala:download').invoke
|
27
|
+
Buildr::ScalaTest::ENABLED = true
|
24
28
|
artifacts(TestFramework.frameworks.map(&:dependencies).flatten).each { |a| file(a).invoke }
|
25
29
|
|
26
30
|
ENV['HOME'] = File.expand_path('tmp/home')
|
@@ -177,21 +177,11 @@ describe 'scalac compiler options' do
|
|
177
177
|
scalac_args.should_not include('-optimise')
|
178
178
|
end
|
179
179
|
|
180
|
-
it 'should not set source option by default' do
|
181
|
-
compile_task.options.source.should be_nil
|
182
|
-
scalac_args.should_not include('-source')
|
183
|
-
end
|
184
|
-
|
185
180
|
it 'should not set target option by default' do
|
186
181
|
compile_task.options.target.should be_nil
|
187
182
|
scalac_args.should_not include('-target')
|
188
183
|
end
|
189
184
|
|
190
|
-
it 'should use -source nn argument if source option set' do
|
191
|
-
compile_task.using(:source=>'1.5')
|
192
|
-
scalac_args.should include('-source', '1.5')
|
193
|
-
end
|
194
|
-
|
195
185
|
it 'should use -target:xxx argument if target option set' do
|
196
186
|
compile_task.using(:target=>'1.5')
|
197
187
|
scalac_args.should include('-target:jvm-1.5')
|
@@ -219,13 +209,12 @@ describe 'scalac compiler options' do
|
|
219
209
|
|
220
210
|
it 'should inherit options from parent' do
|
221
211
|
define 'foo' do
|
222
|
-
compile.using(:warnings=>true, :debug=>true, :deprecation=>true, :
|
212
|
+
compile.using(:warnings=>true, :debug=>true, :deprecation=>true, :target=>'1.4')
|
223
213
|
define 'bar' do
|
224
214
|
compile.using(:scalac)
|
225
215
|
compile.options.warnings.should be_true
|
226
216
|
compile.options.debug.should be_true
|
227
217
|
compile.options.deprecation.should be_true
|
228
|
-
compile.options.source.should eql('1.5')
|
229
218
|
compile.options.target.should eql('1.4')
|
230
219
|
end
|
231
220
|
end
|
@@ -0,0 +1,216 @@
|
|
1
|
+
# Licensed to the Apache Software Foundation (ASF) under one or more
|
2
|
+
# contributor license agreements. See the NOTICE file distributed with this
|
3
|
+
# work for additional information regarding copyright ownership. The ASF
|
4
|
+
# licenses this file to you under the Apache License, Version 2.0 (the
|
5
|
+
# "License"); you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
12
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
13
|
+
# License for the specific language governing permissions and limitations under
|
14
|
+
# the License.
|
15
|
+
|
16
|
+
|
17
|
+
require File.join(File.dirname(__FILE__), 'spec_helpers')
|
18
|
+
|
19
|
+
|
20
|
+
# TODO's
|
21
|
+
# -test w/ Specs
|
22
|
+
# -test w/ ScalaCheck
|
23
|
+
# -failing test
|
24
|
+
# -test passing System props
|
25
|
+
# -test passing ENV variables
|
26
|
+
# -test exclude group
|
27
|
+
# -test include Suite's
|
28
|
+
# -test exclude Suite's
|
29
|
+
|
30
|
+
|
31
|
+
describe Buildr::ScalaTest do
|
32
|
+
it 'should be the default test framework when test cases are in Scala' do
|
33
|
+
write 'src/test/scala/com/example/MySuite.scala', <<-SCALA
|
34
|
+
package com.example
|
35
|
+
import org.scalatest.FunSuite
|
36
|
+
class MySuite extends FunSuite {
|
37
|
+
test("addition") {
|
38
|
+
val sum = 1 + 1
|
39
|
+
assert(sum === 2)
|
40
|
+
}
|
41
|
+
}
|
42
|
+
SCALA
|
43
|
+
define 'foo'
|
44
|
+
project('foo').test.framework.should eql(:scalatest)
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should be picked if the test language is Scala' do
|
48
|
+
define 'foo' do
|
49
|
+
test.compile.using(:scalac)
|
50
|
+
test.framework.should eql(:scalatest)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should include Scalatest dependencies' do
|
55
|
+
define('foo') { test.using(:scalatest) }
|
56
|
+
project('foo').test.compile.dependencies.should include(*artifacts(ScalaTest::REQUIRES))
|
57
|
+
project('foo').test.dependencies.should include(*artifacts(ScalaTest::REQUIRES))
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should include JMock dependencies' do
|
61
|
+
define('foo') { test.using(:scalatest) }
|
62
|
+
project('foo').test.compile.dependencies.should include(*artifacts(JMock::REQUIRES))
|
63
|
+
project('foo').test.dependencies.should include(*artifacts(JMock::REQUIRES))
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'should include Specs dependencies' do
|
67
|
+
define('foo') { test.using(:scalatest) }
|
68
|
+
project('foo').test.compile.dependencies.should include(*artifacts(ScalaSpecs::REQUIRES))
|
69
|
+
project('foo').test.dependencies.should include(*artifacts(ScalaSpecs::REQUIRES))
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'should include ScalaCheck dependencies' do
|
73
|
+
define('foo') { test.using(:scalatest) }
|
74
|
+
project('foo').test.compile.dependencies.should include(*artifacts(ScalaCheck::REQUIRES))
|
75
|
+
project('foo').test.dependencies.should include(*artifacts(ScalaCheck::REQUIRES))
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'should include public classes extending org.scalatest.FunSuite' do
|
79
|
+
write 'src/test/scala/com/example/MySuite.scala', <<-SCALA
|
80
|
+
package com.example
|
81
|
+
import org.scalatest.FunSuite
|
82
|
+
class MySuite extends FunSuite {
|
83
|
+
test("addition") {
|
84
|
+
val sum = 1 + 1
|
85
|
+
assert(sum === 2)
|
86
|
+
}
|
87
|
+
}
|
88
|
+
SCALA
|
89
|
+
define('foo').test.invoke
|
90
|
+
project('foo').test.tests.should include('com.example.MySuite')
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'should ignore classes not extending org.scalatest.FunSuite' do
|
94
|
+
write 'src/test/scala/com/example/NotASuite.scala', <<-SCALA
|
95
|
+
package com.example
|
96
|
+
class Another {
|
97
|
+
}
|
98
|
+
SCALA
|
99
|
+
define('foo').test.invoke
|
100
|
+
project('foo').test.tests.should be_empty
|
101
|
+
end
|
102
|
+
|
103
|
+
it 'should ignore inner classes' do
|
104
|
+
write 'src/test/scala/com/example/InnerClassTest.scala', <<-SCALA
|
105
|
+
package com.example
|
106
|
+
import org.scalatest.FunSuite
|
107
|
+
class InnerClassTest extends FunSuite {
|
108
|
+
test("addition") {
|
109
|
+
val sum = 1 + 1
|
110
|
+
assert(sum === 2)
|
111
|
+
}
|
112
|
+
|
113
|
+
class InnerSuite extends FunSuite {
|
114
|
+
test("addition") {
|
115
|
+
val sum = 1 + 1
|
116
|
+
assert(sum === 2)
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}
|
120
|
+
SCALA
|
121
|
+
define('foo').test.invoke
|
122
|
+
project('foo').test.tests.should eql(['com.example.InnerClassTest'])
|
123
|
+
end
|
124
|
+
|
125
|
+
it 'should pass when ScalaTest test case passes' do
|
126
|
+
write 'src/test/scala/PassingSuite.scala', <<-SCALA
|
127
|
+
class PassingSuite extends org.scalatest.FunSuite {
|
128
|
+
test("addition") {
|
129
|
+
val sum = 1 + 1
|
130
|
+
assert(sum === 2)
|
131
|
+
}
|
132
|
+
}
|
133
|
+
SCALA
|
134
|
+
lambda { define('foo').test.invoke }.should_not raise_error
|
135
|
+
end
|
136
|
+
|
137
|
+
it 'should fail when ScalaTest test case fails' do
|
138
|
+
write 'src/test/scala/FailingSuite.scala', <<-SCALA
|
139
|
+
class FailingSuite extends org.scalatest.FunSuite {
|
140
|
+
test("failing") {
|
141
|
+
assert(false)
|
142
|
+
}
|
143
|
+
}
|
144
|
+
SCALA
|
145
|
+
lambda { define('foo').test.invoke }.should raise_error(RuntimeError, /Tests failed/) rescue nil
|
146
|
+
end
|
147
|
+
|
148
|
+
it 'should report failed test names' do
|
149
|
+
write 'src/test/scala/FailingSuite.scala', <<-SCALA
|
150
|
+
class FailingSuite extends org.scalatest.FunSuite {
|
151
|
+
test("failing") {
|
152
|
+
assert(false)
|
153
|
+
}
|
154
|
+
}
|
155
|
+
SCALA
|
156
|
+
define('foo').test.invoke rescue
|
157
|
+
project('foo').test.failed_tests.should include('FailingSuite')
|
158
|
+
end
|
159
|
+
|
160
|
+
it 'should report to reports/scalatest/TEST-TestSuiteName.txt' do
|
161
|
+
write 'src/test/scala/PassingSuite.scala', <<-SCALA
|
162
|
+
class PassingSuite extends org.scalatest.FunSuite {
|
163
|
+
test("passing") {
|
164
|
+
assert(true)
|
165
|
+
}
|
166
|
+
}
|
167
|
+
SCALA
|
168
|
+
define 'foo' do
|
169
|
+
test.report_to.should be(file('reports/scalatest'))
|
170
|
+
end
|
171
|
+
project('foo').test.invoke
|
172
|
+
project('foo').file('reports/scalatest/TEST-PassingSuite.txt').should exist
|
173
|
+
end
|
174
|
+
|
175
|
+
it 'should pass properties to Suite' do
|
176
|
+
write 'src/test/scala/PropertyTestSuite.scala', <<-SCALA
|
177
|
+
import org.scalatest._
|
178
|
+
class PropertyTestSuite extends FunSuite {
|
179
|
+
var properties = Map[String, Any]()
|
180
|
+
test("testProperty") {
|
181
|
+
assert(properties("name") === "value")
|
182
|
+
}
|
183
|
+
|
184
|
+
protected override def runTests(testName: Option[String], reporter: Reporter, stopper: Stopper,
|
185
|
+
includes: Set[String], excludes: Set[String], properties: Map[String, Any]) {
|
186
|
+
this.properties = properties;
|
187
|
+
super.runTests(testName, reporter, stopper, includes, excludes, properties)
|
188
|
+
}
|
189
|
+
}
|
190
|
+
SCALA
|
191
|
+
define('foo').test.using :properties=>{ 'name'=>'value' }
|
192
|
+
project('foo').test.invoke
|
193
|
+
end
|
194
|
+
|
195
|
+
it 'should set current directory' do
|
196
|
+
mkpath 'baz'
|
197
|
+
expected = File.expand_path('baz')
|
198
|
+
expected.gsub!('/', '\\') if expected =~ /^[A-Z]:/ # Java returns back slashed paths for windows
|
199
|
+
write 'baz/src/test/scala/CurrentDirectoryTestSuite.scala', <<-SCALA
|
200
|
+
class CurrentDirectoryTestSuite extends org.scalatest.FunSuite {
|
201
|
+
test("testCurrentDirectory") {
|
202
|
+
assert("value" === System.getenv("NAME"))
|
203
|
+
assert(#{expected.inspect} === new java.io.File(".").getCanonicalPath())
|
204
|
+
}
|
205
|
+
}
|
206
|
+
SCALA
|
207
|
+
define 'bar' do
|
208
|
+
define 'baz' do
|
209
|
+
test.include 'CurrentDirectoryTest'
|
210
|
+
end
|
211
|
+
end
|
212
|
+
project('bar:baz').test.invoke
|
213
|
+
end
|
214
|
+
|
215
|
+
end
|
216
|
+
|
data/spec/test_spec.rb
CHANGED
@@ -189,7 +189,7 @@ describe Buildr::TestTask do
|
|
189
189
|
end
|
190
190
|
|
191
191
|
it 'should include the main resources target in its dependencies' do
|
192
|
-
write 'src/main/resources/
|
192
|
+
write 'src/main/resources/config.xml'
|
193
193
|
define('foo').test.dependencies.should include(project('foo').resources.target)
|
194
194
|
end
|
195
195
|
|
@@ -203,11 +203,27 @@ describe Buildr::TestTask do
|
|
203
203
|
project('foo').test.dependencies.should include(project('foo').test.compile.target)
|
204
204
|
end
|
205
205
|
|
206
|
+
it 'should add test compile target ahead of regular compile target' do
|
207
|
+
write 'src/main/java/Code.java'
|
208
|
+
write 'src/test/java/Test.java'
|
209
|
+
define 'foo'
|
210
|
+
depends = project('foo').test.dependencies
|
211
|
+
depends.index(project('foo').test.compile.target).should < depends.index(project('foo').compile.target)
|
212
|
+
end
|
213
|
+
|
206
214
|
it 'should include the test resources target in its dependencies' do
|
207
|
-
write 'src/test/resources/
|
215
|
+
write 'src/test/resources/config.xml'
|
208
216
|
define('foo').test.dependencies.should include(project('foo').test.resources.target)
|
209
217
|
end
|
210
218
|
|
219
|
+
it 'should add test resource target ahead of regular resource target' do
|
220
|
+
write 'src/main/resources/config.xml'
|
221
|
+
write 'src/test/resources/config.xml'
|
222
|
+
define 'foo'
|
223
|
+
depends = project('foo').test.dependencies
|
224
|
+
depends.index(project('foo').test.resources.target).should < depends.index(project('foo').resources.target)
|
225
|
+
end
|
226
|
+
|
211
227
|
it 'should clean after itself (test files)' do
|
212
228
|
define('foo') { test.compile.using(:javac) }
|
213
229
|
mkpath project('foo').test.compile.target.to_s
|
@@ -467,9 +483,9 @@ describe Buildr::Project, 'test:resources' do
|
|
467
483
|
end
|
468
484
|
|
469
485
|
it 'should copy to the resources target directory' do
|
470
|
-
write 'src/test/resources/
|
486
|
+
write 'src/test/resources/config.xml', '</xml>'
|
471
487
|
define('foo', :target=>'targeted').test.invoke
|
472
|
-
file('targeted/test/resources/
|
488
|
+
file('targeted/test/resources/config.xml').should contain('</xml>')
|
473
489
|
end
|
474
490
|
|
475
491
|
it 'should create target directory even if no files to copy' do
|