', ['file' => 'views/index.php', 'line' => 10, 'column' => 2] ), ]; $xml = $formatter->render($violations); $this->assertStringContainsString('', $xml); $this->assertStringContainsString('assertStringContainsString('failures="1"', $xml); $this->assertStringContainsString('assertStringContainsString('WCAG_1_1_1_IMG_ALT', $xml); // Verify valid XML parsing $dom = new \DOMDocument(); $this->assertTrue($dom->loadXML($xml)); } public function testRendersCleanXmlWhenEmpty(): void { $formatter = new JunitFormatter(); $input = new ArrayInput([]); $output = new BufferedOutput(); $io = new SymfonyStyle($input, $output); $exitCode = $formatter->format([], 0, $io); $this->assertSame(0, $exitCode); $xml = $output->fetch(); $this->assertStringContainsString('failures="0"', $xml); $this->assertStringContainsString('AccessibilityCompliant', $xml); } }