summaryrefslogtreecommitdiff
path: root/spec/lib/turbo_tests/cli.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/turbo_tests/cli.rb')
-rw-r--r--spec/lib/turbo_tests/cli.rb116
1 files changed, 0 insertions, 116 deletions
diff --git a/spec/lib/turbo_tests/cli.rb b/spec/lib/turbo_tests/cli.rb
deleted file mode 100644
index 6f033cc6d3..0000000000
--- a/spec/lib/turbo_tests/cli.rb
+++ /dev/null
@@ -1,116 +0,0 @@
-# frozen_string_literal: true
-
-require "optparse"
-
-module TurboTests
- class CLI
- def initialize(argv)
- @argv = argv
- end
-
- def run
- requires = []
- formatters = []
- tags = []
- count = nil
- runtime_log = nil
- verbose = false
- fail_fast = nil
- seed = nil
-
- OptionParser.new { |opts|
- opts.banner = <<~BANNER
- Run all tests in parallel, giving each process ENV['TEST_ENV_NUMBER'] ('1', '2', '3', ...).
-
- Reports test results incrementally. Uses methods from `parallel_tests` gem to split files to groups.
-
- Source code of `turbo_tests` gem is based on Discourse and RubyGems work in this area (see README file of the source repository).
-
- Usage: turbo_tests [options]
-
- [optional] Only selected files & folders:
- turbo_tests spec/bar spec/baz/xxx_spec.rb
-
- Options:
- BANNER
-
- opts.on("-n [PROCESSES]", Integer, "How many processes to use, default: available CPUs") { |n| count = n }
-
- opts.on("-r", "--require PATH", "Require a file.") do |filename|
- requires << filename
- end
-
- opts.on("-f", "--format FORMATTER", "Choose a formatter. Available formatters: progress (p), documentation (d). Default: progress") do |name|
- formatters << {
- name: name,
- outputs: []
- }
- end
-
- opts.on("-t", "--tag TAG", "Run examples with the specified tag.") do |tag|
- tags << tag
- end
-
- opts.on("-o", "--out FILE", "Write output to a file instead of $stdout") do |filename|
- if formatters.empty?
- formatters << {
- name: "progress",
- outputs: []
- }
- end
- formatters.last[:outputs] << filename
- end
-
- opts.on("--runtime-log FILE", "Location of previously recorded test runtimes") do |filename|
- runtime_log = filename
- end
-
- opts.on("-v", "--verbose", "More output") do
- verbose = true
- end
-
- opts.on("--fail-fast=[N]") do |n|
- n = begin
- Integer(n)
- rescue
- nil
- end
- fail_fast = n.nil? || n < 1 ? 1 : n
- end
-
- opts.on("--seed SEED", "Seed for rspec") do |s|
- seed = s
- end
- }.parse!(@argv)
-
- requires.each { |f| require(f) }
-
- if formatters.empty?
- formatters << {
- name: "progress",
- outputs: []
- }
- end
-
- formatters.each do |formatter|
- if formatter[:outputs].empty?
- formatter[:outputs] << "-"
- end
- end
-
- exitstatus = TurboTests::Runner.run(
- formatters: formatters,
- tags: tags,
- files: @argv.empty? ? ["spec"] : @argv,
- runtime_log: runtime_log,
- verbose: verbose,
- fail_fast: fail_fast,
- count: count,
- seed: seed
- )
-
- # From https://github.com/serpapi/turbo_tests/pull/20/
- exit exitstatus
- end
- end
-end