class JUnitConverterTest

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Test/JUnitConverterTest.php \Drupal\Tests\Core\Test\JUnitConverterTest
  2. 10 core/tests/Drupal/Tests/Core/Test/JUnitConverterTest.php \Drupal\Tests\Core\Test\JUnitConverterTest
  3. 11.x core/tests/Drupal/Tests/Core/Test/JUnitConverterTest.php \Drupal\Tests\Core\Test\JUnitConverterTest

Tests Drupal\Core\Test\JUnitConverter.

This test class has significant overlap with Drupal\Tests\simpletest\Kernel\PhpUnitErrorTest.

@coversDefaultClass \Drupal\Core\Test\JUnitConverter

@group Test @group simpletest

Hierarchy

Expanded class hierarchy of JUnitConverterTest

See also

\Drupal\Tests\simpletest\Kernel\PhpUnitErrorTest

File

core/tests/Drupal/Tests/Core/Test/JUnitConverterTest.php, line 22

Namespace

Drupal\Tests\Core\Test
View source
class JUnitConverterTest extends UnitTestCase {
    
    /**
     * Test errors reported.
     * @covers ::xmlToRows
     */
    public function testXmlToRowsWithErrors() {
        $phpunit_error_xml = __DIR__ . '/fixtures/phpunit_error.xml';
        $res = JUnitConverter::xmlToRows(1, $phpunit_error_xml);
        $this->assertCount(4, $res, 'All testcases got extracted');
        $this->assertNotEquals($res[0]['status'], 'pass');
        $this->assertEquals($res[0]['status'], 'fail');
        // Test nested testsuites, which appear when you use @dataProvider.
        for ($i = 0; $i < 3; $i++) {
            $this->assertNotEquals($res[$i + 1]['status'], 'pass');
            $this->assertEquals($res[$i + 1]['status'], 'fail');
        }
        // Make sure xmlToRows() does not balk if there are no test results.
        $this->assertSame([], JUnitConverter::xmlToRows(1, 'does_not_exist'));
    }
    
    /**
     * @covers ::xmlToRows
     */
    public function testXmlToRowsEmptyFile() {
        // File system with an empty XML file.
        vfsStream::setup('junit_test', NULL, [
            'empty.xml' => '',
        ]);
        $this->assertArrayEquals([], JUnitConverter::xmlToRows(23, vfsStream::url('junit_test/empty.xml')));
    }
    
    /**
     * @covers ::xmlElementToRows
     */
    public function testXmlElementToRows() {
        $junit = <<<EOD
<?xml version="1.0" encoding="UTF-8"?>
<testsuites>
  <testsuite name="Drupal\\Tests\\simpletest\\Unit\\TestDiscoveryTest" file="/Users/paul/projects/drupal/core/modules/simpletest/tests/src/Unit/TestDiscoveryTest.php" tests="3" assertions="5" errors="0" failures="0" skipped="0" time="0.215539">
    <testcase name="testGetTestClasses" class="Drupal\\Tests\\simpletest\\Unit\\TestDiscoveryTest" classname="Drupal.Tests.simpletest.Unit.TestDiscoveryTest" file="/Users/paul/projects/drupal/core/modules/simpletest/tests/src/Unit/TestDiscoveryTest.php" line="108" assertions="2" time="0.100787"/>
  </testsuite>
</testsuites>
EOD;
        $simpletest = [
            [
                'test_id' => 23,
                'test_class' => 'Drupal\\Tests\\simpletest\\Unit\\TestDiscoveryTest',
                'status' => 'pass',
                'message' => '',
                'message_group' => 'Other',
                'function' => 'Drupal\\Tests\\simpletest\\Unit\\TestDiscoveryTest->testGetTestClasses()',
                'line' => 108,
                'file' => '/Users/paul/projects/drupal/core/modules/simpletest/tests/src/Unit/TestDiscoveryTest.php',
            ],
        ];
        $this->assertArrayEquals($simpletest, JUnitConverter::xmlElementToRows(23, new \SimpleXMLElement($junit)));
    }
    
    /**
     * @covers ::convertTestCaseToSimpletestRow
     */
    public function testConvertTestCaseToSimpletestRow() {
        $junit = <<<EOD
    <testcase name="testGetTestClasses" class="Drupal\\Tests\\simpletest\\Unit\\TestDiscoveryTest" classname="Drupal.Tests.simpletest.Unit.TestDiscoveryTest" file="/Users/paul/projects/drupal/core/modules/simpletest/tests/src/Unit/TestDiscoveryTest.php" line="108" assertions="2" time="0.100787"/>
EOD;
        $simpletest = [
            'test_id' => 23,
            'test_class' => 'Drupal\\Tests\\simpletest\\Unit\\TestDiscoveryTest',
            'status' => 'pass',
            'message' => '',
            'message_group' => 'Other',
            'function' => 'Drupal\\Tests\\simpletest\\Unit\\TestDiscoveryTest->testGetTestClasses()',
            'line' => 108,
            'file' => '/Users/paul/projects/drupal/core/modules/simpletest/tests/src/Unit/TestDiscoveryTest.php',
        ];
        $this->assertArrayEquals($simpletest, JUnitConverter::convertTestCaseToSimpletestRow(23, new \SimpleXMLElement($junit)));
    }

}

Members

Title Sort descending Deprecated Modifiers Object type Summary Overrides
JUnitConverterTest::testConvertTestCaseToSimpletestRow public function @covers ::convertTestCaseToSimpletestRow
JUnitConverterTest::testXmlElementToRows public function @covers ::xmlElementToRows
JUnitConverterTest::testXmlToRowsEmptyFile public function @covers ::xmlToRows
JUnitConverterTest::testXmlToRowsWithErrors public function Test errors reported.
@covers ::xmlToRows
PhpunitCompatibilityTrait::getMock Deprecated public function Returns a mock object for the specified class using the available method.
PhpunitCompatibilityTrait::setExpectedException Deprecated public function Compatibility layer for PHPUnit 6 to support PHPUnit 4 code.
UnitTestCase::$randomGenerator protected property The random generator.
UnitTestCase::$root protected property The app root. 1
UnitTestCase::assertArrayEquals protected function Asserts if two arrays are equal by sorting them first.
UnitTestCase::getBlockMockWithMachineName Deprecated protected function Mocks a block with a block plugin. 1
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getConfigStorageStub public function Returns a stub config storage that returns the supplied configuration.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getRandomGenerator protected function Gets the random generator for the utility methods.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::randomMachineName public function Generates a unique random string containing letters and numbers.
UnitTestCase::setUp protected function 340

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.