Commit 8362026a33c98aa73ddbb9f330b91bb5327e29e3

Authored by Jeroen van Baarsen
1 parent 6d57acce

Split feature tests out to different build job

.travis.yml
... ... @@ -5,10 +5,12 @@ env:
5 5 matrix:
6 6 - TASK=spinach DB=mysql
7 7 - TASK=spec:api DB=mysql
  8 + - TASK=spec:feature DB=mysql
8 9 - TASK=spec:other DB=mysql
9 10 - TASK=jasmine:ci DB=mysql
10 11 - TASK=spinach DB=postgresql
11 12 - TASK=spec:api DB=postgresql
  13 + - TASK=spec:feature DB=postgresql
12 14 - TASK=spec:other DB=postgresql
13 15 - TASK=jasmine:ci DB=postgresql
14 16 before_install:
... ...
lib/tasks/spec.rake
1 1 Rake::Task["spec"].clear if Rake::Task.task_defined?('spec')
2 2  
3 3 namespace :spec do
4   - desc 'GITLAB | Run feature specs'
  4 + desc 'GITLAB | Run request specs'
5 5 task :api do
6 6 cmds = [
7 7 %W(rake gitlab:setup),
... ... @@ -10,11 +10,20 @@ namespace :spec do
10 10 run_commands(cmds)
11 11 end
12 12  
  13 + desc 'GITLAB | Run feature specs'
  14 + task :feature do
  15 + cmds = [
  16 + %W(rake gitlab:setup),
  17 + %W(rspec spec --tag @feature)
  18 + ]
  19 + run_commands(cmds)
  20 + end
  21 +
13 22 desc 'GITLAB | Run other specs'
14 23 task :other do
15 24 cmds = [
16 25 %W(rake gitlab:setup),
17   - %W(rspec spec --tag ~@api)
  26 + %W(rspec spec --tag ~@api --tag ~@feature)
18 27 ]
19 28 run_commands(cmds)
20 29 end
... ...
spec/features/admin/admin_hooks_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Admin::Hooks" do
  3 +describe "Admin::Hooks", feature: true do
4 4 before do
5 5 @project = create(:project)
6 6 login_as :admin
... ...
spec/features/admin/admin_projects_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Admin::Projects" do
  3 +describe "Admin::Projects", feature: true do
4 4 before do
5 5 @project = create(:project)
6 6 login_as :admin
... ...
spec/features/admin/admin_users_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Admin::Users" do
  3 +describe "Admin::Users", feature: true do
4 4 before { login_as :admin }
5 5  
6 6 describe "GET /admin/users" do
... ...
spec/features/admin/security_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Admin::Projects" do
  3 +describe "Admin::Projects", feature: true do
4 4 describe "GET /admin/projects" do
5 5 subject { admin_projects_path }
6 6  
... ...
spec/features/atom/dashboard_issues_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Dashboard Issues Feed" do
  3 +describe "Dashboard Issues Feed", feature: true do
4 4 describe "GET /issues" do
5 5 let!(:user) { create(:user) }
6 6 let!(:project1) { create(:project) }
... ...
spec/features/atom/dashboard_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Dashboard Feed" do
  3 +describe "Dashboard Feed", feature: true do
4 4 describe "GET /" do
5 5 let!(:user) { create(:user) }
6 6  
... ...
spec/features/atom/issues_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Issues Feed" do
  3 +describe "Issues Feed", feature: true do
4 4 describe "GET /issues" do
5 5 let!(:user) { create(:user) }
6 6 let!(:project) { create(:project) }
... ...
spec/features/gitlab_flavored_markdown_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "GitLab Flavored Markdown", features: true do
  3 +describe "GitLab Flavored Markdown", feature: 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/features/issues_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Issues" do
  3 +describe "Issues", feature: true do
4 4 let(:project) { create(:project) }
5 5  
6 6 before do
... ...
spec/features/notes_on_merge_requests_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "On a merge request", js: true do
  3 +describe "On a merge request", js: true, feature: true do
4 4 let!(:merge_request) { create(:merge_request, :simple) }
5 5 let!(:project) { merge_request.source_project }
6 6 let!(:note) { create(:note_on_merge_request, :with_attachment, project: project) }
... ...
spec/features/profile_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Profile account page" do
  3 +describe "Profile account page", feature: true do
4 4 before(:each) { enable_observers }
5 5 after(:each) {disable_observers}
6 6 let(:user) { create(:user) }
... ...
spec/features/projects_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Projects" do
  3 +describe "Projects", feature: true do
4 4 before(:each) { enable_observers }
5 5 after(:each) {disable_observers}
6 6 before { login_as :user }
... ...
spec/features/search_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Search" do
  3 +describe "Search", feature: true do
4 4 before do
5 5 ActiveRecord::Base.observers.enable(:user_observer)
6 6 login_as :user
... ...
spec/features/security/dashboard_access_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Dashboard access" do
  3 +describe "Dashboard access", feature: true do
4 4 describe "GET /dashboard" do
5 5 subject { dashboard_path }
6 6  
... ...
spec/features/security/group/group_access_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Group access" do
  3 +describe "Group access", feature: true do
4 4 describe "GET /projects/new" do
5 5 it { new_group_path.should be_allowed_for :admin }
6 6 it { new_group_path.should be_allowed_for :user }
... ...
spec/features/security/group/internal_group_access_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Group with internal project access" do
  3 +describe "Group with internal project access", feature: true do
4 4 describe "Group" do
5 5 let(:group) { create(:group) }
6 6  
... ...
spec/features/security/group/mixed_group_access_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Group access" do
  3 +describe "Group access", feature: true do
4 4 describe "Group" do
5 5 let(:group) { create(:group) }
6 6  
... ...
spec/features/security/group/public_group_access_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Group with public project access" do
  3 +describe "Group with public project access", feature: true do
4 4 describe "Group" do
5 5 let(:group) { create(:group) }
6 6  
... ...
spec/features/security/profile_access_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Users Security" do
  3 +describe "Users Security", feature: true do
4 4 describe "Project" do
5 5 before do
6 6 @u1 = create(:user)
... ...
spec/features/security/project/internal_access_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Internal Project Access" do
  3 +describe "Internal Project Access", feature: true do
4 4 let(:project) { create(:project, :internal) }
5 5  
6 6 let(:master) { create(:user) }
... ...
spec/features/security/project/private_access_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Private Project Access" do
  3 +describe "Private Project Access", feature: true do
4 4 let(:project) { create(:project) }
5 5  
6 6 let(:master) { create(:user) }
... ...
spec/features/security/project/public_access_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe "Public Project Access" do
  3 +describe "Public Project Access", feature: true do
4 4 let(:project) { create(:project) }
5 5  
6 6 let(:master) { create(:user) }
... ...
spec/features/users_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe 'Users' do
  3 +describe 'Users', feature: true do
4 4 describe "GET /users/sign_up" do
5 5 before do
6 6 Gitlab.config.gitlab.stub(:signup_enabled).and_return(true)
... ...