Class: Xcodeproj::XCScheme::TestAction::TestableReference

Inherits:
XMLElementWrapper show all
Defined in:
lib/xcodeproj/scheme/test_action.rb

Overview

-------------------------------------------------------------------------#

Defined Under Namespace

Classes: Test

Constant Summary collapse

SkippedTest =
TODO:

Remove in Xcodeproj 2

Aliased toTest for compatibility

Test

Instance Attribute Summary

Attributes inherited from XMLElementWrapper

#xml_element

Instance Method Summary collapse

Methods inherited from XMLElementWrapper

#to_s

Constructor Details

#initialize(target_or_node = nil, root_project = nil) ⇒ TestableReference

Returns a new instance of TestableReference.

Parameters:

  • target_or_node (Xcodeproj::Project::Object::AbstractTarget, REXML::Element) (defaults to: nil)

    Either the Xcode target to reference, or an existing XML 'TestableReference' node element to reference, or nil to create an new, empty TestableReference

  • the (Xcodeproj::Project)

    root project to reference from (when nil the project of the target is used)



203
204
205
206
207
208
# File 'lib/xcodeproj/scheme/test_action.rb', line 203

def initialize(target_or_node = nil, root_project = nil)
  create_xml_element_with_fallback(target_or_node, 'TestableReference') do
    self.skipped = false
    add_buildable_reference BuildableReference.new(target_or_node, root_project) unless target_or_node.nil?
  end
end

Instance Method Details

#add_buildable_reference(ref) ⇒ Object

Parameters:

  • ref (BuildableReference)

    The BuildableReference to add to the list of targets this action will build



272
273
274
# File 'lib/xcodeproj/scheme/test_action.rb', line 272

def add_buildable_reference(ref)
  @xml_element.add_element(ref.xml_element)
end

#add_selected_test(selected_test) ⇒ Object

Parameters:

  • selected_test (Test)

    The SelectedTest to add to the list of tests this action will run.



354
355
356
357
# File 'lib/xcodeproj/scheme/test_action.rb', line 354

def add_selected_test(selected_test)
  entries = @xml_element.elements['SelectedTests'] || @xml_element.add_element('SelectedTests')
  entries.add_element(selected_test.xml_element)
end

#add_skipped_test(skipped_test) ⇒ Object

Parameters:

  • skipped_test (Test)

    The SkippedTest to add to the list of tests this action will skip



310
311
312
313
# File 'lib/xcodeproj/scheme/test_action.rb', line 310

def add_skipped_test(skipped_test)
  entries = @xml_element.elements['SkippedTests'] || @xml_element.add_element('SkippedTests')
  entries.add_element(skipped_test.xml_element)
end

#buildable_referencesArray<BuildableReference>

Returns The list of BuildableReferences this action will build. (The list usually contains only one element).

Returns:

  • (Array<BuildableReference>)

    The list of BuildableReferences this action will build. (The list usually contains only one element)



263
264
265
266
267
# File 'lib/xcodeproj/scheme/test_action.rb', line 263

def buildable_references
  @xml_element.get_elements('BuildableReference').map do |node|
    BuildableReference.new(node)
  end
end

#parallelizable=(flag) ⇒ Object

Parameters:

  • flag (Bool)

    Set whether or not this TestableReference (test bundle) should be run in parallel or not



234
235
236
# File 'lib/xcodeproj/scheme/test_action.rb', line 234

def parallelizable=(flag)
  @xml_element.attributes['parallelizable'] = bool_to_string(flag)
end

#parallelizable?Bool

Returns Whether or not this TestableReference (test bundle) should be run in parallel or not.

Returns:

  • (Bool)

    Whether or not this TestableReference (test bundle) should be run in parallel or not



227
228
229
# File 'lib/xcodeproj/scheme/test_action.rb', line 227

def parallelizable?
  string_to_bool(@xml_element.attributes['parallelizable'])
end

#randomized?Bool

Returns Whether or not this TestableReference (test bundle) should be run in randomized order.

Returns:

  • (Bool)

    Whether or not this TestableReference (test bundle) should be run in randomized order.



255
256
257
# File 'lib/xcodeproj/scheme/test_action.rb', line 255

def randomized?
  test_execution_ordering == 'random'
end

#remove_buildable_reference(ref) ⇒ Object

Parameters:

  • ref (BuildableReference)

    The BuildableReference to remove from the list of targets this entry will build



279
280
281
# File 'lib/xcodeproj/scheme/test_action.rb', line 279

def remove_buildable_reference(ref)
  @xml_element.delete_element(ref.xml_element)
end

#selected_testsArray<Test>

Returns The list of SelectedTest this action will run.

Returns:

  • (Array<Test>)

    The list of SelectedTest this action will run.



332
333
334
335
336
337
# File 'lib/xcodeproj/scheme/test_action.rb', line 332

def selected_tests
  return [] if @xml_element.elements['SelectedTests'].nil?
  @xml_element.elements['SelectedTests'].get_elements('Test').map do |node|
    Test.new(node)
  end
end

#selected_tests=(tests) ⇒ Object

Parameters:

  • tests (Array<Test>)

    Set the list of SelectedTest this action will run.



342
343
344
345
346
347
348
349
# File 'lib/xcodeproj/scheme/test_action.rb', line 342

def selected_tests=(tests)
  @xml_element.delete_element('SelectedTests')
  return if tests.nil?
  entries = @xml_element.add_element('SelectedTests')
  tests.each do |selected|
    entries.add_element(selected.xml_element)
  end
end

#skipped=(flag) ⇒ Object

Parameters:

  • flag (Bool)

    Set whether or not this TestableReference (test bundle) should be skipped or not



220
221
222
# File 'lib/xcodeproj/scheme/test_action.rb', line 220

def skipped=(flag)
  @xml_element.attributes['skipped'] = bool_to_string(flag)
end

#skipped?Bool

Returns Whether or not this TestableReference (test bundle) should be skipped or not.

Returns:

  • (Bool)

    Whether or not this TestableReference (test bundle) should be skipped or not



213
214
215
# File 'lib/xcodeproj/scheme/test_action.rb', line 213

def skipped?
  string_to_bool(@xml_element.attributes['skipped'])
end

#skipped_testsArray<Test>

Returns The list of SkippedTest this action will skip.

Returns:

  • (Array<Test>)

    The list of SkippedTest this action will skip.



286
287
288
289
290
291
# File 'lib/xcodeproj/scheme/test_action.rb', line 286

def skipped_tests
  return [] if @xml_element.elements['SkippedTests'].nil?
  @xml_element.elements['SkippedTests'].get_elements('Test').map do |node|
    Test.new(node)
  end
end

#skipped_tests=(tests) ⇒ Object

Parameters:

  • tests (Array<Test>)

    Set the list of SkippedTest this action will skip.



296
297
298
299
300
301
302
303
304
305
# File 'lib/xcodeproj/scheme/test_action.rb', line 296

def skipped_tests=(tests)
  @xml_element.delete_element('SkippedTests')
  if tests.nil?
    return
  end
  entries = @xml_element.add_element('SkippedTests')
  tests.each do |skipped|
    entries.add_element(skipped.xml_element)
  end
end

#test_execution_orderingString

Returns The execution order for this TestableReference (test bundle).

Returns:

  • (String)

    The execution order for this TestableReference (test bundle)



241
242
243
# File 'lib/xcodeproj/scheme/test_action.rb', line 241

def test_execution_ordering
  @xml_element.attributes['testExecutionOrdering']
end

#test_execution_ordering=(order) ⇒ Object

Parameters:

  • order (String)

    Set the execution order for this TestableReference (test bundle)



248
249
250
# File 'lib/xcodeproj/scheme/test_action.rb', line 248

def test_execution_ordering=(order)
  @xml_element.attributes['testExecutionOrdering'] = order
end

#use_test_selection_whitelist=(flag) ⇒ Object

Parameters:

  • flag (Bool)

    Set whether or not this TestableReference (test bundle) should use a whitelist or not



325
326
327
# File 'lib/xcodeproj/scheme/test_action.rb', line 325

def use_test_selection_whitelist=(flag)
  @xml_element.attributes['useTestSelectionWhitelist'] = bool_to_string(flag)
end

#use_test_selection_whitelist?Bool

Returns Whether or not this TestableReference (test bundle) should use a whitelist or not.

Returns:

  • (Bool)

    Whether or not this TestableReference (test bundle) should use a whitelist or not



318
319
320
# File 'lib/xcodeproj/scheme/test_action.rb', line 318

def use_test_selection_whitelist?
  string_to_bool(@xml_element.attributes['useTestSelectionWhitelist'])
end