2

onlyGenerateCoverageForSpecifiedTargetsプログラムで TestAction オブジェクトにプロパティを追加したいと考えています。ドキュメントによると、このプロパティはまだサポートされていません。そのため、カスタム プロパティをオブジェクトに追加する必要があります。CodeCoverageTargetsまた、グループを追加する必要があります。これが私のコードです:

scheme = Xcodeproj::XCScheme.new
scheme.add_build_target(app_target)
scheme.set_launch_target(app_target)
scheme.add_test_target(target)

test_action = scheme.test_action
test_action.code_coverage_enabled = true

# add onlyGenerateCoverageForSpecifiedTargets = true

scheme.test_action = test_action
scheme.save_as(xcode_proj_dir, name)

これは、Xcode GUI からプロパティを追加したときの xml 構造です。

   <TestAction
      buildConfiguration = "Debug"
      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
      shouldUseLaunchSchemeArgsEnv = "YES"
      codeCoverageEnabled = "YES"
      onlyGenerateCoverageForSpecifiedTargets = "YES">
      <MacroExpansion>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "D7CE66BC1C7DE6F700FC64CC"
            BuildableName = "AppName.app"
            BlueprintName = "AppName"
            ReferencedContainer = "container:buddyui.xcodeproj">
         </BuildableReference>
      </MacroExpansion>
      <CodeCoverageTargets>
         <BuildableReference
            BuildableIdentifier = "primary"
            BlueprintIdentifier = "D7CE66BC1C7DE6F700FC64CC"
            BuildableName = "AppName.app"
            BlueprintName = "AppName"
            ReferencedContainer = "container:buddyui.xcodeproj">
         </BuildableReference>
      </CodeCoverageTargets>
4

2 に答える 2