OSDN Git Service

Speed up the "Project Network Graph" cucumber feature
authorRobert Speicher <rspeicher@gmail.com>
Wed, 22 Aug 2012 02:20:09 +0000 (22:20 -0400)
committerRobert Speicher <rspeicher@gmail.com>
Wed, 22 Aug 2012 02:27:06 +0000 (22:27 -0400)
This change involves stubbing out the call to `Grit::Commit.find_all`
and limiting the number of commits to 10 vs. the standard of 650 used by
`Gitlab::GraphCommit.to_graph`.

Prior to this change, this single feature required almost 3 minutes of
running time and over 2 GB of memory on my machine. Now it takes less
than 3 seconds.

features/projects/network.feature
features/step_definitions/project/projects_steps.rb
features/support/env.rb

index 9655184..61c05eb 100644 (file)
@@ -4,9 +4,7 @@ Feature: Project Network Graph
   Background:
     Given I signin as a user
     And I own project "Shop"
-    And I visit project "Shop" network page 
+    And I visit project "Shop" network page
 
   Scenario: I should see project network
     Then page should have network graph
-    
-
index c9af346..1a336ed 100644 (file)
@@ -57,6 +57,11 @@ end
 
 Given /^I visit project "(.*?)" network page$/ do |arg1|
   project = Project.find_by_name(arg1)
+
+  # Stub out find_all to speed this up (10 commits vs. 650)
+  commits = Grit::Commit.find_all(project.repo, nil, {max_count: 10})
+  Grit::Commit.stub(:find_all).and_return(commits)
+
   visit graph_project_path(project)
 end
 
@@ -67,8 +72,9 @@ end
 Given /^page should have network graph$/ do
   page.should have_content "Project Network Graph"
   within ".graph" do
-    page.should have_content "stable"
-    page.should have_content "notes_refacto..."
+    page.should have_content "master"
+    page.should have_content "github"
+    page.should have_content "scss_refactor..."
   end
 end
 
index 496f23f..78d829c 100644 (file)
@@ -44,3 +44,5 @@ require 'headless'
 
 headless = Headless.new
 headless.start
+
+require 'cucumber/rspec/doubles'