Commit 0f31acd0ec9b8a6ccfe9c6b0038736ad724814c0

Authored by Dmitriy Zaporozhets
2 parents 1942b97d 490ab228

Merge pull request #6753 from jvanbaarsen/split_tests

Proposal for split testing
.travis.yml
... ... @@ -4,10 +4,12 @@ env:
4 4 - TRAVIS=true
5 5 matrix:
6 6 - TASK=spinach DB=mysql
7   - - TASK=spec DB=mysql
  7 + - TASK=spec:api DB=mysql
  8 + - TASK=spec:other DB=mysql
8 9 - TASK=jasmine:ci DB=mysql
9 10 - TASK=spinach DB=postgresql
10   - - TASK=spec DB=postgresql
  11 + - TASK=spec:api DB=mysql
  12 + - TASK=spec:other DB=postgresql
11 13 - TASK=jasmine:ci DB=postgresql
12 14 before_install:
13 15 - sudo apt-get install libicu-dev -y
... ...
lib/tasks/spec.rake
1 1 Rake::Task["spec"].clear if Rake::Task.task_defined?('spec')
2 2  
  3 +namespace :spec do
  4 + desc 'GITLAB | Run feature specs'
  5 + task :api do
  6 + cmds = [
  7 + %W(rake gitlab:setup),
  8 + %W(rspec spec --tag @api)
  9 + ]
  10 + run_commands(cmds)
  11 + end
  12 +
  13 + desc 'GITLAB | Run other specs'
  14 + task :other do
  15 + cmds = [
  16 + %W(rake gitlab:setup),
  17 + %W(rspec spec --tag ~@api)
  18 + ]
  19 + run_commands(cmds)
  20 + end
  21 +end
  22 +
3 23 desc "GITLAB | Run specs"
4 24 task :spec do
5 25 cmds = [
6 26 %W(rake gitlab:setup),
7 27 %W(rspec spec),
8 28 ]
  29 + run_commands(cmds)
  30 +end
9 31  
  32 +def run_commands(cmds)
10 33 cmds.each do |cmd|
11 34 system({'RAILS_ENV' => 'test', 'force' => 'yes'}, *cmd)
12 35 raise "#{cmd} failed!" unless $?.exitstatus.zero?
... ...
spec/features/gitlab_flavored_markdown_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "GitLab Flavored Markdown" do
  3 +describe "GitLab Flavored Markdown", features: true do
4 4 let(:project) { create(:project) }
5 5 let(:issue) { create(:issue, project: project) }
6 6 let(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
... ...
spec/models/assembla_service_spec.rb
... ... @@ -19,7 +19,7 @@
19 19  
20 20 require 'spec_helper'
21 21  
22   -describe AssemblaService do
  22 +describe AssemblaService, models: true do
23 23 describe "Associations" do
24 24 it { should belong_to :project }
25 25 it { should have_one :service_hook }
... ...
spec/requests/api/api_helpers_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API do
  3 +describe API, api: true do
4 4 include API::APIHelpers
5 5 include ApiHelpers
6 6 let(:user) { create(:user) }
... ... @@ -158,4 +158,4 @@ describe API do
158 158 sudo_identifier.should == ' 123'
159 159 end
160 160 end
161   -end
162 161 \ No newline at end of file
  162 +end
... ...
spec/requests/api/branches_spec.rb
1 1 require 'spec_helper'
2 2 require 'mime/types'
3 3  
4   -describe API::API do
  4 +describe API::API, api: true do
5 5 include ApiHelpers
6 6 before(:each) { enable_observers }
7 7 after(:each) {disable_observers}
... ...
spec/requests/api/commits_spec.rb
1 1 require 'spec_helper'
2 2 require 'mime/types'
3 3  
4   -describe API::API do
  4 +describe API::API, api: true do
5 5 include ApiHelpers
6 6 before(:each) { enable_observers }
7 7 after(:each) {disable_observers}
... ...
spec/requests/api/files_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5 before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
6 6 after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
... ...
spec/requests/api/groups_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5  
6 6 let(:user1) { create(:user) }
... ...
spec/requests/api/internal_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5 before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
6 6 after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
... ...
spec/requests/api/issues_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5 before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
6 6 after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
... ...
spec/requests/api/merge_requests_spec.rb
1 1 require "spec_helper"
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5 before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
6 6 after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
... ...
spec/requests/api/milestones_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5 before(:each) { enable_observers }
6 6 after(:each) {disable_observers}
... ...
spec/requests/api/namespaces_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5 before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
6 6 after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
... ...
spec/requests/api/notes_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5 before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
6 6 after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
... ...
spec/requests/api/project_hooks_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API, 'ProjectHooks' do
  3 +describe API::API, 'ProjectHooks', api: true do
4 4 include ApiHelpers
5 5 before(:each) { enable_observers }
6 6 after(:each) { disable_observers }
... ...
spec/requests/api/project_members_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5 before(:each) { enable_observers }
6 6 after(:each) { disable_observers }
... ...
spec/requests/api/projects_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5 before(:each) { enable_observers }
6 6 after(:each) { disable_observers }
... ...
spec/requests/api/repositories_spec.rb
1 1 require 'spec_helper'
2 2 require 'mime/types'
3 3  
4   -describe API::API do
  4 +describe API::API, api: true do
5 5 include ApiHelpers
6 6 before(:each) { enable_observers }
7 7 after(:each) {disable_observers}
... ...
spec/requests/api/services_spec.rb
1 1 require "spec_helper"
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5 before(:each) { ActiveRecord::Base.observers.enable(:user_observer) }
6 6 after(:each) { ActiveRecord::Base.observers.disable(:user_observer) }
... ...
spec/requests/api/session_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5  
6 6 let(:user) { create(:user) }
... ...
spec/requests/api/system_hooks_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5  
6 6 let(:user) { create(:user) }
... ...
spec/requests/api/users_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe API::API do
  3 +describe API::API, api: true do
4 4 include ApiHelpers
5 5  
6 6 let(:user) { create(:user) }
... ...