]> source.dussan.org Git - redmine.git/commitdiff
Run plugin tests only if test files exist (#39803, #36320).
authorMarius Balteanu <marius.balteanu@zitec.com>
Wed, 20 Dec 2023 03:30:04 +0000 (03:30 +0000)
committerMarius Balteanu <marius.balteanu@zitec.com>
Wed, 20 Dec 2023 03:30:04 +0000 (03:30 +0000)
git-svn-id: https://svn.redmine.org/redmine/trunk@22525 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/tasks/redmine.rake

index 63717c5032570755f72a53ac050328dec3c32826..c2e81053a49d904beed479d67177e24413666ea3 100644 (file)
@@ -169,44 +169,62 @@ DESC
 
     desc 'Runs the plugins tests.'
     task :test do
-      $: << "test"
-      Rails::TestUnit::Runner.run_from_rake 'test', FileList[
+      test_files = FileList[
         "plugins/#{ENV['NAME'] || '*'}/test/unit/**/*_test.rb",
         "plugins/#{ENV['NAME'] || '*'}/test/functional/**/*_test.rb",
         "plugins/#{ENV['NAME'] || '*'}/test/integration/**/*_test.rb",
         "plugins/#{ENV['NAME'] || '*'}/test/system/**/*_test.rb"
       ]
+      if test_files.any?
+        $: << "test"
+        Rails::TestUnit::Runner.run_from_rake 'test', test_files
+      end
     end
 
     namespace :test do
       desc 'Runs the plugins unit tests.'
       task :units => "db:test:prepare" do |t|
-        $: << "test"
-        Rails::TestUnit::Runner.run_from_rake 'test', ["plugins/#{ENV['NAME'] || '*'}/test/unit/**/*_test.rb"]
+        test_files = FileList["plugins/#{ENV['NAME'] || '*'}/test/unit/**/*_test.rb"]
+        if test_files.any?
+          $: << "test"
+          Rails::TestUnit::Runner.run_from_rake 'test', test_files
+        end
       end
 
       desc 'Runs the plugins functional tests.'
       task :functionals => "db:test:prepare" do |t|
-        $: << "test"
-        Rails::TestUnit::Runner.run_from_rake 'test', ["plugins/#{ENV['NAME'] || '*'}/test/functional/**/*_test.rb"]
+        test_files = FileList["plugins/#{ENV['NAME'] || '*'}/test/functional/**/*_test.rb"]
+        if test_files.any?
+          $: << "test"
+          Rails::TestUnit::Runner.run_from_rake 'test', test_files
+        end
       end
 
       desc 'Runs the plugins integration tests.'
       task :integration => "db:test:prepare" do |t|
-        $: << "test"
-        Rails::TestUnit::Runner.run_from_rake 'test', ["plugins/#{ENV['NAME'] || '*'}/test/integration/**/*_test.rb"]
+        test_files = FileList["plugins/#{ENV['NAME'] || '*'}/test/integration/**/*_test.rb"]
+        if test_files.any?
+          $: << "test"
+          Rails::TestUnit::Runner.run_from_rake 'test', test_files
+        end
       end
 
       desc 'Runs the plugins system tests.'
       task :system => "db:test:prepare" do |t|
-        $: << "test"
-        Rails::TestUnit::Runner.run_from_rake 'test', ["plugins/#{ENV['NAME'] || '*'}/test/system/**/*_test.rb"]
+        test_files = FileList["plugins/#{ENV['NAME'] || '*'}/test/system/**/*_test.rb"]
+        if test_files.any?
+          $: << "test"
+          Rails::TestUnit::Runner.run_from_rake 'test', test_files
+        end
       end
 
       desc 'Runs the plugins ui tests.'
       task :ui => "db:test:prepare" do |t|
-        $: << "test"
-        Rails::TestUnit::Runner.run_from_rake 'test', ["plugins/#{ENV['NAME'] || '*'}/test/ui/**/*_test.rb"]
+        test_files = FileList["plugins/#{ENV['NAME'] || '*'}/test/ui/**/*_test.rb"]
+        if test_files.any?
+          $: << "test"
+          Rails::TestUnit::Runner.run_from_rake 'test', test_files
+        end
       end
     end
   end