| 81 | |
| 82 | |
| 83 | def choose_targets(targets: Iterable[Target]) -> tuple[Optional[Target], Optional[Target], Optional[Target]]: |
| 84 | app = None |
| 85 | ui = None |
| 86 | unit = None |
| 87 | for target in targets: |
| 88 | if target.product_type.endswith(".application") and app is None: |
| 89 | app = target |
| 90 | elif target.product_type.endswith(".bundle.ui-testing") and ui is None: |
| 91 | ui = target |
| 92 | elif target.product_type.endswith(".bundle.unit-test") and unit is None: |
| 93 | unit = target |
| 94 | return app, unit, ui |
| 95 | |
| 96 | |
| 97 | def render_testable(target: Target, container: str) -> str: |