diff --git a/Gemfile b/Gemfile
index 482a6c18dd721e8f703c3bfce6033db72626de02..08592607c0364b72493bab13978eaf56c81e0266 100644
--- a/Gemfile
+++ b/Gemfile
@@ -308,6 +308,7 @@ group :development, :test do
   gem 'benchmark-ips', require: false
 
   gem "license_finder", require: false
+  gem 'knapsack'
 end
 
 group :test do
@@ -316,7 +317,6 @@ group :test do
   gem 'webmock', '~> 1.21.0'
   gem 'test_after_commit', '~> 0.4.2'
   gem 'sham_rack'
-  gem 'knapsack'
 end
 
 group :production do
diff --git a/Rakefile b/Rakefile
index 16261bf8ae20aeefb968c87e7a9245edcd1c6786..85fff2d51eb015ead78cd9428747ce6768eeebe1 100755
--- a/Rakefile
+++ b/Rakefile
@@ -3,11 +3,10 @@
 # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
 
 require File.expand_path('../config/application', __FILE__)
-require 'knapsack'
 
 relative_url_conf = File.expand_path('../config/initializers/relative_url', __FILE__)
 require relative_url_conf if File.exist?("#{relative_url_conf}.rb")
 
 Gitlab::Application.load_tasks
 
-Knapsack.load_tasks
+Knapsack.load_tasks if defined?(Knapsack)