Sha256: e30d35c8d64018c1dbec4dacb47f0720861a0fe5a2216e8451365e34f655d70f

Contents?: true

Size: 1.33 KB

Versions: 6

Compression:

Stored size: 1.33 KB

Contents

require 'optparse'

module Gitlab
  module QA
    class Runner
      # These options are implemented in the QA framework (i.e., in the CE/EE codebase)
      # They're included here so that gitlab-qa treats them as valid options
      PASS_THROUGH_OPTS = [
        ['--address URL', 'Address of the instance to test'],
        ['--mattermost-address URL', 'Address of the Mattermost server'],
        ['--enable-feature FEATURE_FLAG', 'Enable a feature before running tests']
      ].freeze

      # rubocop:disable Metrics/AbcSize
      def self.run(args)
        options = OptionParser.new do |opts|
          opts.banner = 'Usage: gitlab-qa [options] Scenario URL [[--] path] [rspec_options]'

          PASS_THROUGH_OPTS.each do |opt|
            opts.on(*opt)
          end

          opts.on_tail('-v', '--version', 'Show the version') do
            require 'gitlab/qa/version'
            puts "#{$PROGRAM_NAME} : #{VERSION}"
            exit
          end

          opts.on_tail('-h', '--help', 'Show the usage') do
            puts opts
            exit
          end

          opts.parse(args)
        end

        if args.size >= 1
          Scenario
            .const_get(args.shift)
            .perform(*args)
        else
          puts options
          exit 1
        end
      end
      # rubocop:enable Metrics/AbcSize
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
gitlab-qa-3.3.0 lib/gitlab/qa/runner.rb
gitlab-qa-3.2.3 lib/gitlab/qa/runner.rb
gitlab-qa-3.2.2 lib/gitlab/qa/runner.rb
gitlab-qa-3.2.1 lib/gitlab/qa/runner.rb
gitlab-qa-3.2.0 lib/gitlab/qa/runner.rb
gitlab-qa-3.1.1 lib/gitlab/qa/runner.rb