Rakefile in doing-2.1.10 vs Rakefile in doing-2.1.11
- old
+ new
@@ -6,10 +6,11 @@
require 'rake/testtask'
require 'open3'
require 'yard'
require 'parallel_tests'
require 'parallel_tests/tasks'
+require 'tty-spinner'
YARD::Rake::YardocTask.new do |t|
t.files = ['lib/doing/*.rb']
t.options = ['--markup-provider=redcarpet', '--markup=markdown', '--no-private', '-p', 'yard_templates']
# t.stats_options = ['--list-undoc']
@@ -36,24 +37,57 @@
# end
namespace :test do
FileList['test/*_test.rb'].each do |rakefile|
- test_name = File.basename(rakefile, '.rb').sub(%r{^.*?_(.*?)_.*?$}, '\1')
+ test_name = File.basename(rakefile, '.rb').sub(/^.*?_(.*?)_.*?$/, '\1')
Rake::TestTask.new(:"#{test_name}") do |t|
t.libs << ['test', 'test/helpers']
t.pattern = rakefile
t.verbose = ENV['VERBOSE'] =~ /(true|1)/i ? true : false
end
- #Define default task for :test
- task :default => test_name
+ # Define default task for :test
+ task default: test_name
end
+end
+desc 'Run tests in Docker'
+task :dockertest, :version, :login do |_, args|
+ args.with_defaults(version: '2.7', login: false)
+ case args[:version]
+ when /^3/
+ img = 'doingtest3'
+ file = 'Dockerfile-3.0'
+ when /6$/
+ img = 'doingtest26'
+ file = 'Dockerfile-2.6'
+ when /(^2|7$)/
+ img = 'doingtest27'
+ file = 'Dockerfile-2.7'
+ else
+ img = 'doingtest'
+ file = 'Dockerfile'
+ end
+
+ exec "docker run -it #{img} /bin/bash -l" if args[:login]
+
+ puts `docker build . --file #{file} -t #{img}`
+
+ spinner = TTY::Spinner.new('[:spinner] Running tests ...', hide_cursor: true)
+
+ spinner.auto_spin
+ res = `docker run --rm -it #{img}`
+ # commit = puts `bash -c "docker commit $(docker ps -a|grep #{img}|awk '{print $1}'|head -n 1) #{img}"`.strip
+ spinner.success
+ spinner.stop
+
+ puts res
+ # puts commit&.empty? ? "Error commiting Docker tag #{img}" : "Committed Docker tag #{img}"
end
-desc "Run all tests"
-task :test => 'test:default'
+desc 'Run all tests'
+task test: 'test:default'
desc 'Run one test verbosely'
task :test_one, :test do |_, args|
args.with_defaults(test: '*')
puts `bundle exec rake test TESTOPTS="-v" TEST="test/doing_#{args[:test]}_test.rb"`