mirror of
https://github.com/dorny/test-reporter.git
synced 2026-03-22 07:52:14 +01:00
Fixes #711 When PHPUnit XML output contains <error> or <failure> elements without a message attribute, the parser now extracts the error message from the error details text instead of only showing the error type. The improved logic: 1. Prefer message attribute when present (with type prepended) 2. Extract error message from details when it contains a line matching the error type (e.g., "TypeError: ...") 3. Fall back to first line of details 4. Finally, use error type as last resort This provides more informative error messages in test reports when PHPUnit outputs errors with the full stack trace in the element text rather than a message attribute.
628 lines
19 KiB
Text
628 lines
19 KiB
Text
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
|
|
|
exports[`phpunit-junit tests report from junit-basic.xml matches snapshot 1`] = `
|
|
TestRunResult {
|
|
"path": "fixtures/external/phpunit/junit-basic.xml",
|
|
"suites": [
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testCase1",
|
|
"result": "success",
|
|
"time": 2113.871,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testCase2",
|
|
"result": "success",
|
|
"time": 1051,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testCase3",
|
|
"result": "success",
|
|
"time": 3441,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "Tests.Registration",
|
|
"totalTime": 6605.870999999999,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testCase4",
|
|
"result": "success",
|
|
"time": 2244,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testCase5",
|
|
"result": "success",
|
|
"time": 781,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testCase6",
|
|
"result": "success",
|
|
"time": 1331,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "Tests.Authentication.Login",
|
|
"totalTime": 4356,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testCase7",
|
|
"result": "success",
|
|
"time": 2508,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testCase8",
|
|
"result": "success",
|
|
"time": 1230.8159999999998,
|
|
},
|
|
TestCaseResult {
|
|
"error": {
|
|
"details": "",
|
|
"line": undefined,
|
|
"message": "AssertionError: Assertion error message",
|
|
"path": undefined,
|
|
},
|
|
"name": "testCase9",
|
|
"result": "failed",
|
|
"time": 982,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "Tests.Authentication",
|
|
"totalTime": 9076.816,
|
|
},
|
|
],
|
|
"totalTime": 15682.687,
|
|
}
|
|
`;
|
|
|
|
exports[`phpunit-junit tests report from phpcheckstyle-phpunit.xml matches snapshot 1`] = `
|
|
TestRunResult {
|
|
"path": "fixtures/external/phpunit/phpcheckstyle-phpunit.xml",
|
|
"suites": [
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testGoodDoc",
|
|
"result": "success",
|
|
"time": 5.093,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testComments",
|
|
"result": "success",
|
|
"time": 0.921,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testTODOs",
|
|
"result": "success",
|
|
"time": 0.6880000000000001,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "CommentsTest",
|
|
"totalTime": 6.702,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testDeprecations",
|
|
"result": "success",
|
|
"time": 0.9740000000000001,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "DeprecationTest",
|
|
"totalTime": 0.9740000000000001,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testGood",
|
|
"result": "success",
|
|
"time": 2.6470000000000002,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testDoWhile",
|
|
"result": "success",
|
|
"time": 1.0219999999999998,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testAnonymousFunction",
|
|
"result": "success",
|
|
"time": 0.8,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testException",
|
|
"result": "success",
|
|
"time": 0.888,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "GoodTest",
|
|
"totalTime": 5.357,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testTabIndentation",
|
|
"result": "success",
|
|
"time": 0.857,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testSpaceIndentation",
|
|
"result": "success",
|
|
"time": 0.929,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testSpaceIndentationArray",
|
|
"result": "success",
|
|
"time": 0.975,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testGoodSpaceIndentationArray",
|
|
"result": "success",
|
|
"time": 1.212,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testGoodIndentationNewLine",
|
|
"result": "success",
|
|
"time": 0.859,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testGoodIndentationSpaces",
|
|
"result": "success",
|
|
"time": 0.78,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testBadSpaces",
|
|
"result": "success",
|
|
"time": 1.1199999999999999,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testBadSpaceAfterControl",
|
|
"result": "success",
|
|
"time": 0.9219999999999999,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "IndentationTest",
|
|
"totalTime": 7.654,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testMetrics",
|
|
"result": "success",
|
|
"time": 4.146999999999999,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "MetricsTest",
|
|
"totalTime": 4.146999999999999,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testNaming",
|
|
"result": "success",
|
|
"time": 1.426,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testFunctionNaming",
|
|
"result": "success",
|
|
"time": 1.271,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "NamingTest",
|
|
"totalTime": 2.697,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testTextAfterClosingTag",
|
|
"result": "success",
|
|
"time": 0.9940000000000001,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "OptimizationTest",
|
|
"totalTime": 0.9940000000000001,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": {
|
|
"details": "OtherTest::testOther
|
|
We expect 20 warnings
|
|
Failed asserting that 19 matches expected 20.
|
|
|
|
/workspace/phpcheckstyle/test/OtherTest.php:24",
|
|
"line": 12,
|
|
"message": "OtherTest::testOther",
|
|
"path": undefined,
|
|
},
|
|
"name": "testOther",
|
|
"result": "failed",
|
|
"time": 5.2509999999999994,
|
|
},
|
|
TestCaseResult {
|
|
"error": {
|
|
"details": "OtherTest::testException
|
|
We expect 1 error
|
|
Failed asserting that 0 matches expected 1.
|
|
|
|
/workspace/phpcheckstyle/test/OtherTest.php:40",
|
|
"line": 31,
|
|
"message": "OtherTest::testException",
|
|
"path": undefined,
|
|
},
|
|
"name": "testException",
|
|
"result": "failed",
|
|
"time": 0.751,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testEmpty",
|
|
"result": "success",
|
|
"time": 0.42700000000000005,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testSwitchCaseNeedBreak",
|
|
"result": "success",
|
|
"time": 0.901,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "OtherTest",
|
|
"totalTime": 7.329,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testTextAfterClosingTag",
|
|
"result": "success",
|
|
"time": 0.641,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testClosingTagNotNeeded",
|
|
"result": "success",
|
|
"time": 0.631,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "PHPTagsTest",
|
|
"totalTime": 1.272,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testProhibited",
|
|
"result": "success",
|
|
"time": 0.9380000000000001,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "ProhibitedTest",
|
|
"totalTime": 0.9380000000000001,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testStrictCompare",
|
|
"result": "success",
|
|
"time": 1.578,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "StrictCompareTest",
|
|
"totalTime": 1.578,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testGoodUnused",
|
|
"result": "success",
|
|
"time": 0.94,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testBadUnused",
|
|
"result": "success",
|
|
"time": 0.895,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "UnusedTest",
|
|
"totalTime": 1.835,
|
|
},
|
|
],
|
|
"totalTime": undefined,
|
|
}
|
|
`;
|
|
|
|
exports[`phpunit-junit tests report from phpunit test results matches snapshot 1`] = `
|
|
TestRunResult {
|
|
"path": "fixtures/phpunit/phpunit.xml",
|
|
"suites": [
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "PHPUnit.Event.CollectingDispatcherTest",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testHasNoCollectedEventsWhenFlushedImmediatelyAfterCreation",
|
|
"result": "success",
|
|
"time": 1.441,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testCollectsDispatchedEventsUntilFlushed",
|
|
"result": "success",
|
|
"time": 2.815,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "PHPUnit\\Event\\CollectingDispatcherTest",
|
|
"totalTime": 4.256,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "PHPUnit.Event.DeferringDispatcherTest",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testCollectsEventsUntilFlush",
|
|
"result": "success",
|
|
"time": 1.6720000000000002,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testFlushesCollectedEvents",
|
|
"result": "success",
|
|
"time": 0.661,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testSubscriberCanBeRegistered",
|
|
"result": "success",
|
|
"time": 0.33399999999999996,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testTracerCanBeRegistered",
|
|
"result": "success",
|
|
"time": 0.262,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "PHPUnit\\Event\\DeferringDispatcherTest",
|
|
"totalTime": 2.928,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "PHPUnit.Event.DirectDispatcherTest",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testDispatchesEventToKnownSubscribers",
|
|
"result": "success",
|
|
"time": 0.17,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testDispatchesEventToTracers",
|
|
"result": "success",
|
|
"time": 0.248,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testRegisterRejectsUnknownSubscriber",
|
|
"result": "success",
|
|
"time": 0.257,
|
|
},
|
|
TestCaseResult {
|
|
"error": undefined,
|
|
"name": "testDispatchRejectsUnknownEventType",
|
|
"result": "success",
|
|
"time": 0.11900000000000001,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "PHPUnit\\Event\\DirectDispatcherTest",
|
|
"totalTime": 0.794,
|
|
},
|
|
TestSuiteResult {
|
|
"groups": [
|
|
TestGroupResult {
|
|
"name": "",
|
|
"tests": [
|
|
TestCaseResult {
|
|
"error": {
|
|
"details": "targeting-traits-with-coversclass-attribute-is-deprecated.phptFailed asserting that string matches format description.
|
|
--- Expected
|
|
+++ Actual
|
|
@@ @@
|
|
PHPUnit Started (PHPUnit 11.2-g0c2333363 using PHP 8.2.17 (cli) on Linux)
|
|
Test Runner Configured
|
|
Test Suite Loaded (1 test)
|
|
+Test Runner Triggered Warning (No code coverage driver available)
|
|
Event Facade Sealed
|
|
Test Runner Started
|
|
Test Suite Sorted
|
|
@@ @@
|
|
Test Preparation Started (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithCoversClassTest::testSomething)
|
|
Test Prepared (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithCoversClassTest::testSomething)
|
|
Test Passed (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithCoversClassTest::testSomething)
|
|
-Test Runner Triggered Deprecation (Targeting a trait such as PHPUnit\\TestFixture\\CoveredTrait with #[CoversClass] is deprecated, please refactor your test to use #[CoversTrait] instead.)
|
|
Test Finished (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithCoversClassTest::testSomething)
|
|
Test Suite Finished (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithCoversClassTest, 1 test)
|
|
Test Runner Execution Finished
|
|
Test Runner Finished
|
|
-PHPUnit Finished (Shell Exit Code: 0)
|
|
+PHPUnit Finished (Shell Exit Code: 1)
|
|
|
|
/home/matteo/OSS/phpunit/tests/end-to-end/metadata/targeting-traits-with-coversclass-attribute-is-deprecated.phpt:28
|
|
/home/matteo/OSS/phpunit/src/Framework/TestSuite.php:369
|
|
/home/matteo/OSS/phpunit/src/TextUI/TestRunner.php:62
|
|
/home/matteo/OSS/phpunit/src/TextUI/Application.php:200",
|
|
"line": undefined,
|
|
"message": "targeting-traits-with-coversclass-attribute-is-deprecated.phptFailed asserting that string matches format description.",
|
|
"path": undefined,
|
|
},
|
|
"name": "targeting-traits-with-coversclass-attribute-is-deprecated.phpt",
|
|
"result": "failed",
|
|
"time": 68.151,
|
|
},
|
|
TestCaseResult {
|
|
"error": {
|
|
"details": "targeting-traits-with-usesclass-attribute-is-deprecated.phptFailed asserting that string matches format description.
|
|
--- Expected
|
|
+++ Actual
|
|
@@ @@
|
|
PHPUnit Started (PHPUnit 11.2-g0c2333363 using PHP 8.2.17 (cli) on Linux)
|
|
Test Runner Configured
|
|
Test Suite Loaded (1 test)
|
|
+Test Runner Triggered Warning (No code coverage driver available)
|
|
Event Facade Sealed
|
|
Test Runner Started
|
|
Test Suite Sorted
|
|
@@ @@
|
|
Test Preparation Started (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithUsesClassTest::testSomething)
|
|
Test Prepared (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithUsesClassTest::testSomething)
|
|
Test Passed (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithUsesClassTest::testSomething)
|
|
-Test Runner Triggered Deprecation (Targeting a trait such as PHPUnit\\TestFixture\\CoveredTrait with #[UsesClass] is deprecated, please refactor your test to use #[UsesTrait] instead.)
|
|
Test Finished (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithUsesClassTest::testSomething)
|
|
Test Suite Finished (PHPUnit\\DeprecatedAnnotationsTestFixture\\TraitTargetedWithUsesClassTest, 1 test)
|
|
Test Runner Execution Finished
|
|
Test Runner Finished
|
|
-PHPUnit Finished (Shell Exit Code: 0)
|
|
+PHPUnit Finished (Shell Exit Code: 1)
|
|
|
|
/home/matteo/OSS/phpunit/tests/end-to-end/metadata/targeting-traits-with-usesclass-attribute-is-deprecated.phpt:28
|
|
/home/matteo/OSS/phpunit/src/Framework/TestSuite.php:369
|
|
/home/matteo/OSS/phpunit/src/TextUI/TestRunner.php:62
|
|
/home/matteo/OSS/phpunit/src/TextUI/Application.php:200",
|
|
"line": undefined,
|
|
"message": "targeting-traits-with-usesclass-attribute-is-deprecated.phptFailed asserting that string matches format description.",
|
|
"path": undefined,
|
|
},
|
|
"name": "targeting-traits-with-usesclass-attribute-is-deprecated.phpt",
|
|
"result": "failed",
|
|
"time": 64.268,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
"name": "CLI Arguments",
|
|
"totalTime": 140.397,
|
|
},
|
|
],
|
|
"totalTime": undefined,
|
|
}
|
|
`;
|