class Taeval::Unittest::Runner
Public Class Methods
new(config, output, reporter)
click to toggle source
# File lib/taeval/unittest/runner.rb, line 10 def initialize(config, output, reporter) @config = Config.new(config) @output = output @reporter = reporter end
Public Instance Methods
run()
click to toggle source
# File lib/taeval/unittest/runner.rb, line 16 def run cp_original if !@config.cmd.nil? cmd = @config.cmd elsif !@config.tool.nil? case @config.tool.to_sym when :gradle cmd = 'gradle test' else raise "Unittest: #{@config.tool} is not supported." end else raise 'Unittest: Unittest\'s tool or cmd should be defined.' end exec(cmd) end
Private Instance Methods
cp_original()
click to toggle source
# File lib/taeval/unittest/runner.rb, line 37 def cp_original Dir.glob("#{@config.solutions}/*").each do |solution| begin FileUtils.cp_r(Dir.glob("#{@config.original}/unittest/*"), "#{solution}/unittest") rescue => e repo = solution.split('/').last @reporter.add(repo: repo, runner: :unittest, msg: "#{repo}, #{e.message}") end end end
exec(cmd)
click to toggle source
# File lib/taeval/unittest/runner.rb, line 48 def exec(cmd) Dir.glob("#{@config.solutions}/*").each do |solution| stdout, stderr, status = Open3.capture3(cmd, chdir: "#{solution}/unittest") @output.print "Executing #{cmd} in #{solution}", stdout, stderr @reporter.add(repo: solution.split('/').last, runner: :unittest, msg: "'#{cmd}' in #{solution}/unittest failed, status = #{status.exitstatus}") if status.exitstatus != 0 end end