class XCTasks::TestTask
Attributes
config[R]
destination[R]
namespace_name[R]
prepare_dependency[R]
subtasks[R]
Public Class Methods
new(namespace_name = :test) { |self| ... }
click to toggle source
# File lib/xctasks/test_task.rb, line 304 def initialize(namespace_name = :test) @namespace_name = namespace_name @config = Configuration.new @subtasks = [] @destination @namespace_name = namespace_name.kind_of?(Hash) ? namespace_name.keys.first : namespace_name @prepare_dependency = namespace_name.kind_of?(Hash) ? namespace_name.values.first : nil yield self if block_given? raise ConfigurationError, "A workspace or project must be configured" unless workspace || project raise ConfigurationError, "At least one subtask must be configured" if subtasks.empty? define_rake_tasks end
Public Instance Methods
define_rake_tasks()
click to toggle source
# File lib/xctasks/test_task.rb, line 349 def define_rake_tasks namespace self.namespace_name do task (prepare_dependency ? { prepare: prepare_dependency} : :prepare ) do if workspace fail "No such workspace: #{workspace}" unless File.exists?(workspace) else fail "No such project: #{project}" unless File.exists?(project) end fail "Invalid schemes directory: #{schemes_dir}" unless schemes_dir.nil? || File.exists?(schemes_dir) File.truncate(output_log, 0) if output_log && File.exists?(output_log) if schemes_dir FileUtils::Verbose.mkdir_p "#{workspace || project}/xcshareddata/xcschemes" FileUtils::Verbose.cp Dir.glob("#{schemes_dir}/*.xcscheme"), "#{workspace || project}/xcshareddata/xcschemes" end subtasks.each { |subtask| subtask.prepare } end subtasks.each { |subtask| subtask.define_rake_tasks } end subtask_names = subtasks.map { |subtask| subtask.name } desc "Run all tests (#{subtask_names.join(', ')})" task namespace_name => subtask_names.map { |subtask_name| "#{namespace_name}:#{subtask_name}" } do XCTasks::TestReport.instance.report end end
subtask(name_options) { |subtask| ... }
click to toggle source
# File lib/xctasks/test_task.rb, line 326 def subtask(name_options) subtask = Subtask.new(name_options, config) yield subtask if block_given? if @destination subtask.destination @destination end @subtasks << subtask end
subtasks=(subtasks)
click to toggle source
# File lib/xctasks/test_task.rb, line 318 def subtasks=(subtasks) if subtasks.kind_of?(Hash) subtasks.each { |name, scheme| subtask(name => scheme) } else raise ArgumentError, "Cannot assign subtasks from a #{subtasks.class}" end end