# Licensed to Elasticsearch B.V. under one or more contributor # license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright # ownership. Elasticsearch B.V. licenses this file to you under # the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. require 'bundler/gem_tasks' require 'json' task(:default) { system 'rake --tasks' } task test: 'test:unit' require 'rake/testtask' require 'rspec/core/rake_task' # Test Tasks namespace :test do desc 'Wait for Elasticsearch to be in a green state' task :wait_for_green do sh '../scripts/wait-cluster.sh' end desc 'Run unit tests' task unit: :spec RSpec::Core::RakeTask.new(:spec) do |t| t.pattern = 'spec/elasticsearch/api/**/*_spec.rb' t.exclude_pattern = 'spec/platinum/**/*_spec.rb' end desc 'Run Rest API Spec tests' RSpec::Core::RakeTask.new(:rest_api) do |t| test_dir = Rake.application.original_dir t.pattern = "#{test_dir}/spec/rest_api/rest_api_yaml_spec.rb" end desc 'Run unit and integration tests' task :all do Rake::Task['test:unit'].invoke Rake::Task['test:integration'].invoke end namespace :platinum do desc 'Run Platinum Rest API Spec tests' RSpec::Core::RakeTask.new(:api) do ENV['TEST_SUITE'] = 'platinum' Rake::Task['test:rest_api'].invoke end desc 'Run Platinum Unit tests - DEPRECATED: Will be migrated to RSpec' Rake::TestTask.new(:unit) do |test| test.libs << 'spec/platinum/unit' test.test_files = FileList['spec/platinum/unit/**/*_test.rb'] test.verbose = false test.warning = false end desc 'Run Platinum Integration Specs' RSpec::Core::RakeTask.new(:integration) do |t| t.pattern = if ENV['TEST_SUITE'] == 'platinum' 'spec/platinum/integration/**/*_spec.rb' else 'spec/free/integration/**/*_spec.rb' end t.ruby_opts = '-W0' end end end # Documentation tasks require 'yard' YARD::Rake::YardocTask.new(:doc) do |t| t.options = %w| --embed-mixins --markup=markdown | end # Code analysis tasks require 'cane/rake_task' Cane::RakeTask.new(:quality) do |cane| cane.abc_max = 15 cane.no_style = true end