24 lines
456 B
Ruby
Executable File
24 lines
456 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
file, line = ARGV[0], nil
|
|
test_name_pattern = nil
|
|
|
|
if file =~ /:\d+/
|
|
file, line = file.split(/:/)
|
|
end
|
|
|
|
if line
|
|
text = File.read(file).split(/\r\n|\r|\n/)[line.to_i - 1]
|
|
if text =~ /(?:context|should) ["'](.+?)["']/
|
|
test_name_pattern = Regexp.escape($1)
|
|
end
|
|
end
|
|
|
|
env_options = {
|
|
"TEST" => file
|
|
}
|
|
|
|
env_options["TESTOPTS"] = "--name='/#{test_name_pattern}/'" if test_name_pattern
|
|
|
|
exec(env_options, "bundle exec rake test")
|