summaryrefslogtreecommitdiff
path: root/qa/qa/specs/knapsack_runner.rb
blob: 0c4f938ee28b16df68e774463b2888103aeeeaad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# frozen_string_literal: true

module QA
  module Specs
    class KnapsackRunner
      def self.run(args)
        QA::Support::KnapsackReport.configure!

        allocator = Knapsack::AllocatorBuilder.new(Knapsack::Adapters::RSpecAdapter).allocator

        Knapsack.logger.info '==== Knapsack specs to execute ====='
        Knapsack.logger.info 'Report specs:'
        Knapsack.logger.info allocator.report_node_tests
        Knapsack.logger.info 'Leftover specs:'
        Knapsack.logger.info allocator.leftover_node_tests

        status = RSpec::Core::Runner.run([*args, '--', *allocator.node_tests])
        yield status if block_given?
        status
      end
    end
  end
end