diff --git a/lib/tasks/emoji.rake b/lib/tasks/emoji.rake
index f852d77d811..104c096b31c 100644
--- a/lib/tasks/emoji.rake
+++ b/lib/tasks/emoji.rake
@@ -1,5 +1,6 @@
 require "active_support/core_ext/object/blank"
 require "active_support/core_ext/hash/deep_merge"
+require "active_support/test_case"
 require "base64"
 require "fileutils"
 require "image_optim"
@@ -2337,87 +2338,14 @@ task "emoji:update" do
 
   puts "\r\n"
   $debugging_output.each { |debug| puts debug }
+
+  TestEmojiUpdate.run_and_summarize
 end
 
 desc "test the emoji generation script"
 task "emoji:test" do
   ENV['EMOJI_TEST'] = "1"
-  require "active_support/test_case"
-
-  class TestEmojiUpdate < MiniTest::Test
-    def setup
-      Rake::Task["emoji:update"].invoke
-    end
-
-    def image_path(style, name)
-      File.join("public", "images", "emoji", style, "#{name}.png")
-    end
-
-    def test_code_to_emoji
-      assert_equal "😎", code_to_emoji("1f60e")
-    end
-
-    def test_codepoints_to_code
-      assert_equal "1f6b5_200d_2640", codepoints_to_code([128693, 8205, 9792, 65039], false)
-    end
-
-    def test_codepoints_to_code_with_scale
-      assert_equal "1f6b5_200d_2640_fe0f", codepoints_to_code([128693, 8205, 9792, 65039], true)
-    end
-
-    def test_groups_js_es6_creation
-      assert File.exists?(EMOJI_GROUPS_PATH)
-      assert File.size?(EMOJI_GROUPS_PATH)
-    end
-
-    def test_db_json_creation
-      assert File.exists?(EMOJI_DB_PATH)
-      assert File.size?(EMOJI_DB_PATH)
-    end
-
-    def test_alias_creation
-      original_image = image_path("apple", "right_anger_bubble")
-      alias_image = image_path("apple", "anger_right")
-
-      assert_equal File.size(original_image), File.size(alias_image)
-    end
-
-    def test_cell_index_patch
-      original_image = image_path("apple", "snowboarder")
-      alias_image = image_path("twitter", "snowboarder")
-
-      assert_equal File.size(original_image), File.size(alias_image)
-    end
-
-    def test_scales
-      original_image = image_path("apple", "blonde_woman")
-      assert File.exists?(original_image)
-      assert File.size?(original_image)
-
-      (2..6).each do |scale|
-        image = image_path("apple", "blonde_woman/#{scale}")
-        assert File.exists?(image)
-        assert File.size?(image)
-      end
-    end
-
-    def test_generate_emoji_scales
-      actual = generate_emoji_scales("sleeping_bed", "1f6cc")
-      expected = {
-        "1f6cc_1f3fb" => { :name => "sleeping_bed/2", :fitzpatrick_scale => false },
-        "1f6cc_1f3fc" => { :name => "sleeping_bed/3", :fitzpatrick_scale => false },
-        "1f6cc_1f3fd" => { :name => "sleeping_bed/4", :fitzpatrick_scale => false },
-        "1f6cc_1f3fe" => { :name => "sleeping_bed/5", :fitzpatrick_scale => false },
-        "1f6cc_1f3ff" => { :name => "sleeping_bed/6", :fitzpatrick_scale => false }
-      }
-
-      assert_equal expected, actual
-    end
-  end
-
-  reporter = Minitest::SummaryReporter.new
-  TestEmojiUpdate.run(reporter)
-  puts reporter.to_s
+  Rake::Task["emoji:update"].invoke
 end
 
 def write_emojis(emojis)
@@ -2690,3 +2618,78 @@ def confirm_overwrite(path)
   STDOUT.puts("[!] You are about to overwrite #{path}, are you sure? [CTRL+c] to cancel, [ENTER] to continue")
   STDIN.gets.chomp
 end
+
+
+class TestEmojiUpdate < MiniTest::Test
+  def self.run_and_summarize
+    puts "Runnings tests..."
+    reporter = Minitest::SummaryReporter.new
+    TestEmojiUpdate.run(reporter)
+    puts reporter.to_s
+  end
+
+  def image_path(style, name)
+    File.join("public", "images", "emoji", style, "#{name}.png")
+  end
+
+  def test_code_to_emoji
+    assert_equal "😎", code_to_emoji("1f60e")
+  end
+
+  def test_codepoints_to_code
+    assert_equal "1f6b5_200d_2640", codepoints_to_code([128693, 8205, 9792, 65039], false)
+  end
+
+  def test_codepoints_to_code_with_scale
+    assert_equal "1f6b5_200d_2640_fe0f", codepoints_to_code([128693, 8205, 9792, 65039], true)
+  end
+
+  def test_groups_js_es6_creation
+    assert File.exists?(EMOJI_GROUPS_PATH)
+    assert File.size?(EMOJI_GROUPS_PATH)
+  end
+
+  def test_db_json_creation
+    assert File.exists?(EMOJI_DB_PATH)
+    assert File.size?(EMOJI_DB_PATH)
+  end
+
+  def test_alias_creation
+    original_image = image_path("apple", "right_anger_bubble")
+    alias_image = image_path("apple", "anger_right")
+
+    assert_equal File.size(original_image), File.size(alias_image)
+  end
+
+  def test_cell_index_patch
+    original_image = image_path("apple", "snowboarder")
+    alias_image = image_path("twitter", "snowboarder")
+
+    assert_equal File.size(original_image), File.size(alias_image)
+  end
+
+  def test_scales
+    original_image = image_path("apple", "blonde_woman")
+    assert File.exists?(original_image)
+    assert File.size?(original_image)
+
+    (2..6).each do |scale|
+      image = image_path("apple", "blonde_woman/#{scale}")
+      assert File.exists?(image)
+      assert File.size?(image)
+    end
+  end
+
+  def test_generate_emoji_scales
+    actual = generate_emoji_scales("sleeping_bed", "1f6cc")
+    expected = {
+      "1f6cc_1f3fb" => { :name => "sleeping_bed/2", :fitzpatrick_scale => false },
+      "1f6cc_1f3fc" => { :name => "sleeping_bed/3", :fitzpatrick_scale => false },
+      "1f6cc_1f3fd" => { :name => "sleeping_bed/4", :fitzpatrick_scale => false },
+      "1f6cc_1f3fe" => { :name => "sleeping_bed/5", :fitzpatrick_scale => false },
+      "1f6cc_1f3ff" => { :name => "sleeping_bed/6", :fitzpatrick_scale => false }
+    }
+
+    assert_equal expected, actual
+  end
+end