| 234 | self._add_simple("error", msg, str(report.longrepr)) |
| 235 | |
| 236 | def append_skipped(self, report: TestReport) -> None: |
| 237 | if hasattr(report, "wasxfail"): |
| 238 | xfailreason = report.wasxfail |
| 239 | if xfailreason.startswith("reason: "): |
| 240 | xfailreason = xfailreason[8:] |
| 241 | xfailreason = bin_xml_escape(xfailreason) |
| 242 | skipped = ET.Element("skipped", type="pytest.xfail", message=xfailreason) |
| 243 | self.append(skipped) |
| 244 | else: |
| 245 | assert isinstance(report.longrepr, tuple) |
| 246 | filename, lineno, skipreason = report.longrepr |
| 247 | if skipreason.startswith("Skipped: "): |
| 248 | skipreason = skipreason[9:] |
| 249 | details = f"{filename}:{lineno}: {skipreason}" |
| 250 | |
| 251 | skipped = ET.Element("skipped", type="pytest.skip", message=skipreason) |
| 252 | skipped.text = bin_xml_escape(details) |
| 253 | self.append(skipped) |
| 254 | self.write_captured_output(report) |
| 255 | |
| 256 | def finalize(self) -> None: |
| 257 | data = self.to_xml() |