Launchable: test-spec: Remove launchable option and related formatter integration

This commit is contained in:
Naoto Ono 2025-06-26 08:36:52 +09:00
parent 6b7f56d2db
commit 5c86fb2609
4 changed files with 0 additions and 104 deletions

View file

@ -49,9 +49,6 @@ class MSpecRun < MSpecScript
options.doc "\n When to perform it"
options.action_filters
options.doc "\n Launchable"
options.launchable
options.doc "\n Help!"
options.debug
options.version MSpec::VERSION

View file

@ -1,88 +0,0 @@
module LaunchableFormatter
def self.extend_object(obj)
super
obj.init
end
def self.setDir(dir)
@@path = File.join(dir, "#{rand.to_s}.json")
self
end
def init
@timer = nil
@tests = []
end
def before(state = nil)
super
@timer = TimerAction.new
@timer.start
end
def after(state = nil)
super
@timer.finish
file = MSpec.file
return if file.nil? || state&.example.nil? || exception?
@tests << {:test => state, :file => file, :exception => false, duration: @timer.elapsed}
end
def exception(exception)
super
@timer.finish
file = MSpec.file
return if file.nil?
@tests << {:test => exception, :file => file, :exception => true, duration: @timer.elapsed}
end
def finish
super
require_relative '../../../../../../tool/lib/launchable'
@writer = writer = Launchable::JsonStreamWriter.new(@@path)
@writer.write_array('testCases')
at_exit {
@writer.close
}
repo_path = File.expand_path("#{__dir__}/../../../../../../")
@tests.each do |t|
testcase = t[:test].description
relative_path = t[:file].delete_prefix("#{repo_path}/")
# The test path is a URL-encoded representation.
# https://github.com/launchableinc/cli/blob/v1.81.0/launchable/testpath.py#L18
test_path = {file: relative_path, testcase: testcase}.map{|key, val|
"#{encode_test_path_component(key)}=#{encode_test_path_component(val)}"
}.join('#')
status = 'TEST_PASSED'
if t[:exception]
message = t[:test].message
backtrace = t[:test].backtrace
e = "#{message}\n#{backtrace}"
status = 'TEST_FAILED'
end
@writer.write_object(
{
testPath: test_path,
status: status,
duration: t[:duration],
createdAt: Time.now.to_s,
stderr: e,
stdout: nil
}
)
end
end
private
def encode_test_path_component component
component.to_s.gsub('%', '%25').gsub('=', '%3D').gsub('#', '%23').gsub('&', '%26').tr("\x00-\x08", "")
end
end

View file

@ -489,14 +489,6 @@ class MSpecOptions
end
end
def launchable
on("--launchable-test-reports", "DIR",
"DIR The directory for reporting test results in Launchable JSON format") do |o|
require 'mspec/runner/formatters/launchable'
config[:launchable] = LaunchableFormatter.setDir(o)
end
end
def all
configure {}
env
@ -516,6 +508,5 @@ class MSpecOptions
action_filters
actions
debug
launchable
end
end

View file

@ -162,10 +162,6 @@ class MSpecScript
config[:formatter] = config[:formatter].new(config[:output])
end
if config[:launchable]
config[:formatter].extend config[:launchable]
end
config[:formatter]
end