Rakefile in spreewald-0.5.10 vs Rakefile in spreewald-0.5.11

- old
+ new

@@ -1,13 +1,50 @@ #!/usr/bin/env rake require "bundler/gem_tasks" +desc 'Default: Run all tests.' +task :default => 'tests:run' # now you can run the tests by just typing "rake" into your console + desc 'Update the "Steps" section of the README' -task "update_readme" do +task :update_readme do require 'support/documentation_generator' readme = File.read('README.md') start_of_steps_section = readme =~ /^## Steps/ length_of_steps_section = (readme[(start_of_steps_section+1)..-1] =~ /^##[^#]/) || readme.size - start_of_steps_section readme[start_of_steps_section, length_of_steps_section] = "## Steps\n\n" + DocumentationGenerator::StepDefinitionsDirectory.new('lib/spreewald').format File.open('README.md', 'w') { |f| f.write(readme) } +end + +namespace :tests do + + desc "Run tests on all test apps" + task :run do # to run the tests type "rake tests:run" into your console + success = true + for_each_directory_of('tests/**/Rakefile') do |directory| + env = "SPEC=../../#{ENV['SPEC']} " if ENV['SPEC'] + success &= system("cd #{directory} && #{env} bundle exec rake features") + end + fail "Tests failed" unless success + end + + desc "Bundle all test apps" + task :bundle do + for_each_directory_of('tests/**/Gemfile') do |directory| + system("cd #{directory} && rm -f Gemfile.lock && bundle install") + end + end + + desc 'Shortcut for creating a database' + task :create_database do + system("mysql -uroot -p -e 'create database spreewald_test;'") + end + +end + +def for_each_directory_of(path, &block) + Dir[path].sort.each do |rakefile| + directory = File.dirname(rakefile) + puts '', "\033[44m#{directory}\033[0m", '' + block.call(directory) + end end