mirror of
https://github.com/dorny/test-reporter.git
synced 2025-12-17 23:07:08 +01:00
Merge d92228612c into 2d69204ad0
This commit is contained in:
commit
62e6e98456
8 changed files with 385 additions and 20 deletions
38
__tests__/__outputs__/phpunit-test-results.md
Normal file
38
__tests__/__outputs__/phpunit-test-results.md
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|

|
||||||
|
## ❌ <a id="user-content-r0" href="#r0">fixtures/external/java/phpunit.xml</a>
|
||||||
|
**12** tests were completed in **148ms** with **10** passed, **2** failed and **0** skipped.
|
||||||
|
|Test suite|Passed|Failed|Skipped|Time|
|
||||||
|
|:---|---:|---:|---:|---:|
|
||||||
|
|[CLI Arguments](#r0s0)||2❌||140ms|
|
||||||
|
|[PHPUnit\Event\CollectingDispatcherTest](#r0s1)|2✅|||4ms|
|
||||||
|
|[PHPUnit\Event\DeferringDispatcherTest](#r0s2)|4✅|||3ms|
|
||||||
|
|[PHPUnit\Event\DirectDispatcherTest](#r0s3)|4✅|||1ms|
|
||||||
|
### ❌ <a id="user-content-r0s0" href="#r0s0">CLI Arguments</a>
|
||||||
|
```
|
||||||
|
❌ targeting-traits-with-coversclass-attribute-is-deprecated.phpt
|
||||||
|
targeting-traits-with-coversclass-attribute-is-deprecated.phptFailed asserting that string matches format description.
|
||||||
|
❌ targeting-traits-with-usesclass-attribute-is-deprecated.phpt
|
||||||
|
targeting-traits-with-usesclass-attribute-is-deprecated.phptFailed asserting that string matches format description.
|
||||||
|
```
|
||||||
|
### ✅ <a id="user-content-r0s1" href="#r0s1">PHPUnit\Event\CollectingDispatcherTest</a>
|
||||||
|
```
|
||||||
|
PHPUnit.Event.CollectingDispatcherTest
|
||||||
|
✅ testHasNoCollectedEventsWhenFlushedImmediatelyAfterCreation
|
||||||
|
✅ testCollectsDispatchedEventsUntilFlushed
|
||||||
|
```
|
||||||
|
### ✅ <a id="user-content-r0s2" href="#r0s2">PHPUnit\Event\DeferringDispatcherTest</a>
|
||||||
|
```
|
||||||
|
PHPUnit.Event.DeferringDispatcherTest
|
||||||
|
✅ testCollectsEventsUntilFlush
|
||||||
|
✅ testFlushesCollectedEvents
|
||||||
|
✅ testSubscriberCanBeRegistered
|
||||||
|
✅ testTracerCanBeRegistered
|
||||||
|
```
|
||||||
|
### ✅ <a id="user-content-r0s3" href="#r0s3">PHPUnit\Event\DirectDispatcherTest</a>
|
||||||
|
```
|
||||||
|
PHPUnit.Event.DirectDispatcherTest
|
||||||
|
✅ testDispatchesEventToKnownSubscribers
|
||||||
|
✅ testDispatchesEventToTracers
|
||||||
|
✅ testRegisterRejectsUnknownSubscriber
|
||||||
|
✅ testDispatchRejectsUnknownEventType
|
||||||
|
```
|
||||||
188
__tests__/__snapshots__/java-junit-phpunit.test.ts.snap
Normal file
188
__tests__/__snapshots__/java-junit-phpunit.test.ts.snap
Normal file
|
|
@ -0,0 +1,188 @@
|
||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`java-junit phpunit tests report from phpunit test results matches snapshot 1`] = `
|
||||||
|
TestRunResult {
|
||||||
|
"path": "fixtures/external/java/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": undefined,
|
||||||
|
"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": undefined,
|
||||||
|
"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": undefined,
|
||||||
|
"path": undefined,
|
||||||
|
},
|
||||||
|
"name": "targeting-traits-with-usesclass-attribute-is-deprecated.phpt",
|
||||||
|
"result": "failed",
|
||||||
|
"time": 64.268,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"name": "CLI Arguments",
|
||||||
|
"totalTime": 140.397,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"totalTime": undefined,
|
||||||
|
}
|
||||||
|
`;
|
||||||
2
__tests__/fixtures/empty/java-junit-empty-phpunit.xml
Normal file
2
__tests__/fixtures/empty/java-junit-empty-phpunit.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<testsuites/>
|
||||||
79
__tests__/fixtures/external/java/phpunit.xml
vendored
Normal file
79
__tests__/fixtures/external/java/phpunit.xml
vendored
Normal file
|
|
@ -0,0 +1,79 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<testsuites>
|
||||||
|
<testsuite name="CLI Arguments" tests="12" assertions="12" errors="0" failures="2" skipped="0" time="0.140397">
|
||||||
|
<testcase name="targeting-traits-with-coversclass-attribute-is-deprecated.phpt" file="/home/matteo/OSS/phpunit/tests/end-to-end/metadata/targeting-traits-with-coversclass-attribute-is-deprecated.phpt" assertions="1" time="0.068151">
|
||||||
|
<failure type="PHPUnit\Framework\PhptAssertionFailedError">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</failure>
|
||||||
|
</testcase>
|
||||||
|
<testcase name="targeting-traits-with-usesclass-attribute-is-deprecated.phpt" file="/home/matteo/OSS/phpunit/tests/end-to-end/metadata/targeting-traits-with-usesclass-attribute-is-deprecated.phpt" assertions="1" time="0.064268">
|
||||||
|
<failure type="PHPUnit\Framework\PhptAssertionFailedError">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</failure>
|
||||||
|
</testcase>
|
||||||
|
<testsuite name="PHPUnit\Event\CollectingDispatcherTest" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/CollectingDispatcherTest.php" tests="2" assertions="2" errors="0" failures="0" skipped="0" time="0.004256">
|
||||||
|
<testcase name="testHasNoCollectedEventsWhenFlushedImmediatelyAfterCreation" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/CollectingDispatcherTest.php" line="20" class="PHPUnit\Event\CollectingDispatcherTest" classname="PHPUnit.Event.CollectingDispatcherTest" assertions="1" time="0.001441"/>
|
||||||
|
<testcase name="testCollectsDispatchedEventsUntilFlushed" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/CollectingDispatcherTest.php" line="27" class="PHPUnit\Event\CollectingDispatcherTest" classname="PHPUnit.Event.CollectingDispatcherTest" assertions="1" time="0.002815"/>
|
||||||
|
</testsuite>
|
||||||
|
<testsuite name="PHPUnit\Event\DeferringDispatcherTest" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DeferringDispatcherTest.php" tests="4" assertions="4" errors="0" failures="0" skipped="0" time="0.002928">
|
||||||
|
<testcase name="testCollectsEventsUntilFlush" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DeferringDispatcherTest.php" line="22" class="PHPUnit\Event\DeferringDispatcherTest" classname="PHPUnit.Event.DeferringDispatcherTest" assertions="1" time="0.001672"/>
|
||||||
|
<testcase name="testFlushesCollectedEvents" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DeferringDispatcherTest.php" line="35" class="PHPUnit\Event\DeferringDispatcherTest" classname="PHPUnit.Event.DeferringDispatcherTest" assertions="1" time="0.000661"/>
|
||||||
|
<testcase name="testSubscriberCanBeRegistered" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DeferringDispatcherTest.php" line="53" class="PHPUnit\Event\DeferringDispatcherTest" classname="PHPUnit.Event.DeferringDispatcherTest" assertions="1" time="0.000334"/>
|
||||||
|
<testcase name="testTracerCanBeRegistered" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DeferringDispatcherTest.php" line="69" class="PHPUnit\Event\DeferringDispatcherTest" classname="PHPUnit.Event.DeferringDispatcherTest" assertions="1" time="0.000262"/>
|
||||||
|
</testsuite>
|
||||||
|
<testsuite name="PHPUnit\Event\DirectDispatcherTest" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DirectDispatcherTest.php" tests="4" assertions="4" errors="0" failures="0" skipped="0" time="0.000794">
|
||||||
|
<testcase name="testDispatchesEventToKnownSubscribers" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DirectDispatcherTest.php" line="24" class="PHPUnit\Event\DirectDispatcherTest" classname="PHPUnit.Event.DirectDispatcherTest" assertions="1" time="0.000170"/>
|
||||||
|
<testcase name="testDispatchesEventToTracers" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DirectDispatcherTest.php" line="43" class="PHPUnit\Event\DirectDispatcherTest" classname="PHPUnit.Event.DirectDispatcherTest" assertions="1" time="0.000248"/>
|
||||||
|
<testcase name="testRegisterRejectsUnknownSubscriber" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DirectDispatcherTest.php" line="62" class="PHPUnit\Event\DirectDispatcherTest" classname="PHPUnit.Event.DirectDispatcherTest" assertions="1" time="0.000257"/>
|
||||||
|
<testcase name="testDispatchRejectsUnknownEventType" file="/home/matteo/OSS/phpunit/tests/unit/Event/Dispatcher/DirectDispatcherTest.php" line="73" class="PHPUnit\Event\DirectDispatcherTest" classname="PHPUnit.Event.DirectDispatcherTest" assertions="1" time="0.000119"/>
|
||||||
|
</testsuite>
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
46
__tests__/java-junit-phpunit.test.ts
Normal file
46
__tests__/java-junit-phpunit.test.ts
Normal file
|
|
@ -0,0 +1,46 @@
|
||||||
|
import * as fs from 'fs'
|
||||||
|
import * as path from 'path'
|
||||||
|
|
||||||
|
import {JavaJunitParser} from '../src/parsers/java-junit/java-junit-parser'
|
||||||
|
import {ParseOptions} from '../src/test-parser'
|
||||||
|
import {getReport} from '../src/report/get-report'
|
||||||
|
import {normalizeFilePath} from '../src/utils/path-utils'
|
||||||
|
|
||||||
|
describe('java-junit phpunit tests', () => {
|
||||||
|
it('produces empty test run result when there are no test cases', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'empty', 'java-junit-empty-phpunit.xml')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new JavaJunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
expect(result.tests).toBe(0)
|
||||||
|
expect(result.result).toBe('success')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('report from phpunit test results matches snapshot', async () => {
|
||||||
|
const fixturePath = path.join(__dirname, 'fixtures', 'external', 'java', 'phpunit.xml')
|
||||||
|
const trackedFilesPath = path.join(__dirname, 'fixtures', 'external', 'java', 'phpunit.txt')
|
||||||
|
const outputPath = path.join(__dirname, '__outputs__', 'phpunit-test-results.md')
|
||||||
|
const filePath = normalizeFilePath(path.relative(__dirname, fixturePath))
|
||||||
|
const fileContent = fs.readFileSync(fixturePath, {encoding: 'utf8'})
|
||||||
|
|
||||||
|
const opts: ParseOptions = {
|
||||||
|
parseErrors: true,
|
||||||
|
trackedFiles: []
|
||||||
|
}
|
||||||
|
|
||||||
|
const parser = new JavaJunitParser(opts)
|
||||||
|
const result = await parser.parse(filePath, fileContent)
|
||||||
|
expect(result).toMatchSnapshot()
|
||||||
|
|
||||||
|
const report = getReport([result])
|
||||||
|
fs.mkdirSync(path.dirname(outputPath), {recursive: true})
|
||||||
|
fs.writeFileSync(outputPath, report)
|
||||||
|
})
|
||||||
|
})
|
||||||
22
dist/index.js
generated
vendored
22
dist/index.js
generated
vendored
|
|
@ -1129,19 +1129,21 @@ class JavaJunitParser {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
getTestRunResult(filePath, junit) {
|
getTestRunResult(filePath, junit) {
|
||||||
var _a;
|
var _a, _b;
|
||||||
const suites = junit.testsuites.testsuite === undefined
|
let suites = [];
|
||||||
? []
|
this.appendSuites(suites, (_a = junit.testsuites.testsuite) !== null && _a !== void 0 ? _a : []);
|
||||||
: junit.testsuites.testsuite.map(ts => {
|
const seconds = parseFloat((_b = junit.testsuites.$) === null || _b === void 0 ? void 0 : _b.time);
|
||||||
const name = ts.$.name.trim();
|
|
||||||
const time = parseFloat(ts.$.time) * 1000;
|
|
||||||
const sr = new test_results_1.TestSuiteResult(name, this.getGroups(ts), time);
|
|
||||||
return sr;
|
|
||||||
});
|
|
||||||
const seconds = parseFloat((_a = junit.testsuites.$) === null || _a === void 0 ? void 0 : _a.time);
|
|
||||||
const time = isNaN(seconds) ? undefined : seconds * 1000;
|
const time = isNaN(seconds) ? undefined : seconds * 1000;
|
||||||
return new test_results_1.TestRunResult(filePath, suites, time);
|
return new test_results_1.TestRunResult(filePath, suites, time);
|
||||||
}
|
}
|
||||||
|
appendSuites(results, testsuites) {
|
||||||
|
if (testsuites === undefined)
|
||||||
|
return;
|
||||||
|
for (const ts of testsuites) {
|
||||||
|
this.appendSuites(results, ts.testsuite);
|
||||||
|
results.push(new test_results_1.TestSuiteResult(ts.$.name.trim(), this.getGroups(ts), parseFloat(ts.$.time) * 1000));
|
||||||
|
}
|
||||||
|
}
|
||||||
getGroups(suite) {
|
getGroups(suite) {
|
||||||
if (suite.testcase === undefined) {
|
if (suite.testcase === undefined) {
|
||||||
return [];
|
return [];
|
||||||
|
|
|
||||||
|
|
@ -61,21 +61,30 @@ export class JavaJunitParser implements TestParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
private getTestRunResult(filePath: string, junit: JunitReport): TestRunResult {
|
private getTestRunResult(filePath: string, junit: JunitReport): TestRunResult {
|
||||||
const suites =
|
let suites: TestSuiteResult[] = []
|
||||||
junit.testsuites.testsuite === undefined
|
|
||||||
? []
|
this.appendSuites(suites, junit.testsuites.testsuite ?? [])
|
||||||
: junit.testsuites.testsuite.map(ts => {
|
|
||||||
const name = ts.$.name.trim()
|
|
||||||
const time = parseFloat(ts.$.time) * 1000
|
|
||||||
const sr = new TestSuiteResult(name, this.getGroups(ts), time)
|
|
||||||
return sr
|
|
||||||
})
|
|
||||||
|
|
||||||
const seconds = parseFloat(junit.testsuites.$?.time)
|
const seconds = parseFloat(junit.testsuites.$?.time)
|
||||||
const time = isNaN(seconds) ? undefined : seconds * 1000
|
const time = isNaN(seconds) ? undefined : seconds * 1000
|
||||||
return new TestRunResult(filePath, suites, time)
|
return new TestRunResult(filePath, suites, time)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private appendSuites(results: TestSuiteResult[], testsuites?: TestSuite[]): void
|
||||||
|
{
|
||||||
|
if (testsuites === undefined) return
|
||||||
|
|
||||||
|
for (const ts of testsuites) {
|
||||||
|
this.appendSuites(results, ts.testsuite)
|
||||||
|
|
||||||
|
results.push(new TestSuiteResult(
|
||||||
|
ts.$.name.trim(),
|
||||||
|
this.getGroups(ts),
|
||||||
|
parseFloat(ts.$.time) * 1000
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private getGroups(suite: TestSuite): TestGroupResult[] {
|
private getGroups(suite: TestSuite): TestGroupResult[] {
|
||||||
if (suite.testcase === undefined) {
|
if (suite.testcase === undefined) {
|
||||||
return []
|
return []
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,8 @@ export interface TestSuite {
|
||||||
time: string
|
time: string
|
||||||
timestamp?: Date
|
timestamp?: Date
|
||||||
}
|
}
|
||||||
testcase: TestCase[]
|
testcase?: TestCase[]
|
||||||
|
testsuite?: TestSuite[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TestCase {
|
export interface TestCase {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue