I am getting more and more into phpunit testing and have copied the core/phpunit.xml.dist file to core/phpunit.xml.

Exclude anything from core

I would like to exclude anything from the core, so phpunit has to find only my module's tests in modules/custom, but when I use vendor/bin/phpunit -c core --list-groups it still finds any module and test of the core.

Boost execution

Another problem I have is the execution of some very simple tests inside the test_example module with vendor/bin/phpunit -c core --group test_example takes ages.

How do I accelerate the test execution? Have I configured it wrongly?

This is the content of the phpunit.xml file.

<?xml version="1.0" encoding="UTF-8"?>

  <!-- TODO set checkForUnintentionallyCoveredCode="true" once https://www.drupal.org/node/2626832 is resolved. -->
  <!-- PHPUnit expects functional tests to be run with either a privileged user
   or your current system user. See core/tests/README.md and
   https://www.drupal.org/node/2116263 for details.
  <phpunit bootstrap="tests/bootstrap.php" colors="true"
  <!-- TODO set printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter" once
   https://youtrack.jetbrains.com/issue/WI-24808 is resolved. Drupal provides a
   result printer that links to the html output results for functional tests.
   Unfortunately, this breaks the output of PHPStorm's PHPUnit runner. However, if
   using the command line you can add
   - -printer="\Drupal\Tests\Listeners\HtmlOutputPrinter" to use it (note there
   should be no spaces between the hyphens).
      <!-- Set error reporting to E_ALL. -->
      <ini name="error_reporting" value="32767"/>
      <!-- Do not limit the amount of memory tests take to run. -->
      <ini name="memory_limit" value="-1"/>
      <!-- Example SIMPLETEST_BASE_URL value: http://localhost -->
      <env name="SIMPLETEST_BASE_URL" value=""/>
      <!-- Example SIMPLETEST_DB value: mysql://username:password@localhost/databasename#table_prefix -->
      <env name="SIMPLETEST_DB" value=""/>
      <!-- Example BROWSERTEST_OUTPUT_DIRECTORY value: /path/to/webroot/sites/simpletest/browser_output -->
      <env name="BROWSERTEST_OUTPUT_DIRECTORY" value=""/>
      <testsuite name="unit">
      <testsuite name="kernel">
      <testsuite name="functional">
      <testsuite name="functional-javascript">
      <listener class="\Drupal\Tests\Listeners\DrupalStandardsListener">
    <!-- Filter for coverage reports. -->
        <!-- By definition test classes have no tests. -->
          <directory suffix="Test.php">./</directory>
          <directory suffix="TestBase.php">./</directory>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.