Skip to content

Commit ae38d8a

Browse files
authored
Use Rake::TestTask for running tests (googleapis#2426)
Use Rake::TestTask to ensure tests run when the task is invoked. This fixes a problem where a task can invoke multiple sub-tasks, but the test files won't run until the parent task completes. Remove Rakefile from being copied from generated projects.
1 parent 1930403 commit ae38d8a

File tree

45 files changed

+289
-451
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+289
-451
lines changed

gcloud/Rakefile

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ require "bundler/gem_tasks"
44
require "rubocop/rake_task"
55
RuboCop::RakeTask.new
66

7+
require "rake/testtask"
78
desc "Run tests."
8-
task :test do
9-
$LOAD_PATH.unshift "lib", "test"
10-
Dir.glob("test/**/*_test.rb").each { |file| require_relative file }
9+
Rake::TestTask.new do |t|
10+
t.libs << "test"
11+
t.test_files = FileList["test/**/*_test.rb"]
12+
t.warning = false
1113
end
1214

1315
namespace :test do

google-cloud-asset/Rakefile

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@ require "bundler/gem_tasks"
1717
require "rubocop/rake_task"
1818
RuboCop::RakeTask.new
1919

20+
require "rake/testtask"
2021
desc "Run tests."
21-
task :test do
22-
$LOAD_PATH.unshift "lib", "test"
23-
Dir.glob("test/**/*test.rb")
24-
.reject { |file| file.include? "smoke_test" }
25-
.each { |file| require_relative file }
22+
Rake::TestTask.new do |t|
23+
t.test_files = FileList["test/**/*_test.rb"]
24+
t.warning = false
2625
end
2726

2827
namespace :test do

google-cloud-asset/synth.py

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ def merge_gemspec(src, dest, path):
4242
)
4343
s.copy(v1beta1_library / 'lib')
4444
s.copy(v1beta1_library / 'test')
45-
s.copy(v1beta1_library / 'Rakefile')
4645
s.copy(v1beta1_library / 'README.md')
4746
s.copy(v1beta1_library / 'LICENSE')
4847
s.copy(v1beta1_library / '.gitignore')
@@ -80,28 +79,8 @@ def escape_braces(match):
8079
'(\n\\s+class \\w+Client\n)(\\s+)(attr_reader :\\w+_stub)',
8180
'\\1\\2# @private\n\\2\\3')
8281

83-
# https://github.com/googleapis/gapic-generator/issues/2278
84-
s.replace(
85-
'Rakefile',
86-
'\ndesc[^\n]+\ntask :jsondoc [^\n]+\n+( [^\n]+\n+)*end\n',
87-
'')
88-
s.replace(
89-
'Rakefile',
90-
'\n\\s*header "google-cloud-\\S+ jsondoc", "\\*"\n\\s*sh "bundle exec rake jsondoc"\n',
91-
'\n')
92-
9382
# https://github.com/googleapis/gapic-generator/issues/2279
9483
s.replace(
9584
'lib/**/*.rb',
9685
'\\A(((#[^\n]*)?\n)*# (Copyright \\d+|Generated by the protocol buffer compiler)[^\n]+\n(#[^\n]*\n)*\n)([^\n])',
9786
'\\1\n\\6')
98-
99-
# https://github.com/googleapis/gapic-generator/issues/2301
100-
s.replace(
101-
'Rakefile',
102-
'Rake::Task\\["(\\w+)"\\]\\.invoke\n',
103-
'Rake::Task[:\\1].invoke\n')
104-
s.replace(
105-
'Rakefile',
106-
'sh "bundle exec rake (\\w+)( -v)?"\n',
107-
'Rake::Task[:\\1].invoke\n')

google-cloud-bigquery-data_transfer/Rakefile

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@ require "bundler/gem_tasks"
1717
require "rubocop/rake_task"
1818
RuboCop::RakeTask.new
1919

20+
require "rake/testtask"
2021
desc "Run tests."
21-
task :test do
22-
$LOAD_PATH.unshift "lib", "test"
23-
Dir.glob("test/**/*test.rb")
24-
.reject { |file| file.include? "smoke_test" }
25-
.each { |file| require_relative file }
22+
Rake::TestTask.new do |t|
23+
t.test_files = FileList["test/**/*_test.rb"]
24+
t.warning = false
2625
end
2726

2827
namespace :test do
@@ -40,10 +39,10 @@ namespace :test do
4039
end
4140

4241
desc "Runs the smoke tests."
43-
task :smoke_test do
44-
45-
$LOAD_PATH.unshift "lib", "smoke_test"
46-
Dir.glob("acceptance/**/*smoke_test.rb").each { |file| require_relative file }
42+
Rake::TestTask.new :smoke_test do |t|
43+
t.test_files = FileList["acceptance/**/*smoke_test.rb"]
44+
t.verbose = true
45+
t.warning = false
4746
end
4847

4948
namespace :smoke_test do

google-cloud-bigquery-data_transfer/synth.py

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ def merge_gemspec(src, dest, path):
4343
s.copy(v1_library / 'acceptance')
4444
s.copy(v1_library / 'lib')
4545
s.copy(v1_library / 'test')
46-
s.copy(v1_library / 'Rakefile')
4746
s.copy(v1_library / 'README.md')
4847
s.copy(v1_library / 'LICENSE')
4948
s.copy(v1_library / '.gitignore')
@@ -88,28 +87,8 @@ def escape_braces(match):
8887
'(\n\\s+class \\w+Client\n)(\\s+)(attr_reader :\\w+_stub)',
8988
'\\1\\2# @private\n\\2\\3')
9089

91-
# https://github.com/googleapis/gapic-generator/issues/2278
92-
s.replace(
93-
'Rakefile',
94-
'\ndesc[^\n]+\ntask :jsondoc [^\n]+\n+( [^\n]+\n+)*end\n',
95-
'')
96-
s.replace(
97-
'Rakefile',
98-
'\n\\s*header "google-cloud-\\S+ jsondoc", "\\*"\n\\s*sh "bundle exec rake jsondoc"\n',
99-
'\n')
100-
10190
# https://github.com/googleapis/gapic-generator/issues/2279
10291
s.replace(
10392
'lib/**/*.rb',
10493
'\\A(((#[^\n]*)?\n)*# (Copyright \\d+|Generated by the protocol buffer compiler)[^\n]+\n(#[^\n]*\n)*\n)([^\n])',
10594
'\\1\n\\6')
106-
107-
# https://github.com/googleapis/gapic-generator/issues/2301
108-
s.replace(
109-
'Rakefile',
110-
'Rake::Task\\["(\\w+)"\\]\\.invoke\n',
111-
'Rake::Task[:\\1].invoke\n')
112-
s.replace(
113-
'Rakefile',
114-
'sh "bundle exec rake (\\w+)( -v)?"\n',
115-
'Rake::Task[:\\1].invoke\n')

google-cloud-bigquery/Rakefile

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ require "bundler/gem_tasks"
44
require "rubocop/rake_task"
55
RuboCop::RakeTask.new
66

7+
require "rake/testtask"
78
desc "Run tests."
8-
task :test do
9-
$LOAD_PATH.unshift "lib", "test"
10-
Dir.glob("test/**/*_test.rb").each { |file| require_relative file }
9+
Rake::TestTask.new do |t|
10+
t.libs << "test"
11+
t.test_files = FileList["test/**/*_test.rb"]
12+
t.warning = false
1113
end
1214

1315
namespace :test do
@@ -109,9 +111,11 @@ namespace :acceptance do
109111
end
110112
end
111113

112-
task :run do
113-
$LOAD_PATH.unshift "lib", "acceptance"
114-
Dir.glob("acceptance/bigquery/**/*_test.rb").each { |file| require_relative file }
114+
Rake::TestTask.new :run do |t|
115+
t.libs << "acceptance"
116+
t.test_files = FileList["acceptance/**/*_test.rb"]
117+
t.verbose = true
118+
t.warning = false
115119
end
116120
end
117121

google-cloud-bigtable/Rakefile

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ require "bundler/gem_tasks"
1717
require "rubocop/rake_task"
1818
RuboCop::RakeTask.new
1919

20+
require "rake/testtask"
2021
desc "Run tests."
21-
task :test do
22-
$LOAD_PATH.unshift "lib", "test"
23-
Dir.glob("test/**/*test.rb")
24-
.reject { |file| file.include? "smoke_test" }
25-
.each { |file| require_relative file }
22+
Rake::TestTask.new do |t|
23+
t.libs << "test"
24+
t.test_files = FileList["test/**/*_test.rb"]
25+
t.warning = false
2626
end
2727

2828
namespace :test do
@@ -77,9 +77,11 @@ task :acceptance, :project, :keyfile do |_t, args|
7777
end
7878

7979
namespace :acceptance do
80-
task :run do
81-
$LOAD_PATH.unshift "lib", "acceptance"
82-
Dir.glob("acceptance/**/*_test.rb").each { |file| require_relative file }
80+
Rake::TestTask.new :run do |t|
81+
t.libs << "acceptance"
82+
t.test_files = FileList["acceptance/**/*_test.rb"]
83+
t.verbose = true
84+
t.warning = false
8385
end
8486

8587
desc "Run acceptance tests with coverage."

google-cloud-container/Rakefile

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@ require "bundler/gem_tasks"
1717
require "rubocop/rake_task"
1818
RuboCop::RakeTask.new
1919

20+
require "rake/testtask"
2021
desc "Run tests."
21-
task :test do
22-
$LOAD_PATH.unshift "lib", "test"
23-
Dir.glob("test/**/*test.rb")
24-
.reject { |file| file.include? "smoke_test" }
25-
.each { |file| require_relative file }
22+
Rake::TestTask.new do |t|
23+
t.test_files = FileList["test/**/*_test.rb"]
24+
t.warning = false
2625
end
2726

2827
namespace :test do
@@ -40,10 +39,10 @@ namespace :test do
4039
end
4140

4241
desc "Runs the smoke tests."
43-
task :smoke_test do
44-
45-
$LOAD_PATH.unshift "lib", "smoke_test"
46-
Dir.glob("acceptance/**/*smoke_test.rb").each { |file| require_relative file }
42+
Rake::TestTask.new :smoke_test do |t|
43+
t.test_files = FileList["acceptance/**/*smoke_test.rb"]
44+
t.verbose = true
45+
t.warning = false
4746
end
4847

4948
namespace :smoke_test do

google-cloud-container/synth.py

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ def merge_gemspec(src, dest, path):
4343
s.copy(v1_library / 'acceptance')
4444
s.copy(v1_library / 'lib')
4545
s.copy(v1_library / 'test')
46-
s.copy(v1_library / 'Rakefile')
4746
s.copy(v1_library / 'README.md')
4847
s.copy(v1_library / 'LICENSE')
4948
s.copy(v1_library / '.gitignore')
@@ -60,49 +59,14 @@ def merge_gemspec(src, dest, path):
6059
'\\[Product Documentation\\]: https://cloud\\.google\\.com/container\n',
6160
'[Product Documentation]: https://cloud.google.com/kubernetes-engine\n')
6261

63-
# https://github.com/googleapis/gapic-generator/issues/2211
64-
s.replace(
65-
'Rakefile',
66-
'namespace :ci do\n desc "Run the CI build, with acceptance tests\\."\n task :acceptance do',
67-
dedent("""\
68-
namespace :ci do
69-
desc "Run the CI build, with smoke tests."
70-
task :smoke_test do
71-
Rake::Task[:ci].invoke
72-
header "google-cloud-container smoke_test", "*"
73-
Rake::Task[:smoke_test].invoke
74-
end
75-
desc "Run the CI build, with acceptance tests."
76-
task :acceptance do"""))
77-
7862
# https://github.com/googleapis/gapic-generator/issues/2243
7963
s.replace(
8064
'lib/google/cloud/container/*/*_client.rb',
8165
'(\n\\s+class \\w+Client\n)(\\s+)(attr_reader :\\w+_stub)',
8266
'\\1\\2# @private\n\\2\\3')
8367

84-
# https://github.com/googleapis/gapic-generator/issues/2278
85-
s.replace(
86-
'Rakefile',
87-
'\ndesc[^\n]+\ntask :jsondoc [^\n]+\n+( [^\n]+\n+)*end\n',
88-
'')
89-
s.replace(
90-
'Rakefile',
91-
'\n\\s*header "google-cloud-\\S+ jsondoc", "\\*"\n\\s*sh "bundle exec rake jsondoc"\n',
92-
'\n')
93-
9468
# https://github.com/googleapis/gapic-generator/issues/2279
9569
s.replace(
9670
'lib/**/*.rb',
9771
'\\A(((#[^\n]*)?\n)*# (Copyright \\d+|Generated by the protocol buffer compiler)[^\n]+\n(#[^\n]*\n)*\n)([^\n])',
9872
'\\1\n\\6')
99-
100-
# https://github.com/googleapis/gapic-generator/issues/2301
101-
s.replace(
102-
'Rakefile',
103-
'Rake::Task\\["(\\w+)"\\]\\.invoke\n',
104-
'Rake::Task[:\\1].invoke\n')
105-
s.replace(
106-
'Rakefile',
107-
'sh "bundle exec rake (\\w+)( -v)?"\n',
108-
'Rake::Task[:\\1].invoke\n')

google-cloud-core/Rakefile

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ require "bundler/gem_tasks"
44
require "rubocop/rake_task"
55
RuboCop::RakeTask.new
66

7+
require "rake/testtask"
78
desc "Run tests."
8-
task :test do
9-
$LOAD_PATH.unshift "lib", "test"
10-
Dir.glob("test/**/*_test.rb").each { |file| require_relative file }
9+
Rake::TestTask.new do |t|
10+
t.libs << "test"
11+
t.test_files = FileList["test/**/*_test.rb"]
12+
t.warning = false
1113
end
1214

1315
namespace :test do

0 commit comments

Comments
 (0)