ddev / ddev-drupal-contrib

DDEV integration for developing Drupal contrib projects
Apache License 2.0
61 stars 8 forks source link

Where are the generated HTML-pages saved? #29

Open gitressa opened 4 months ago

gitressa commented 4 months ago

After running PHPUnit tests with DDEV Selenium Standalone Chrome, a lot of helpful HTML-pages are available in the web/sites/simpletest/browser_output folder.

Is it also possible to get those pages generated in this project as well? Or maybe they already exist?

"web/sites/simpletest/browser_output" folder ```bash $ ddev exec -d /var/www/html/web "../vendor/bin/phpunit -v -c ./core/phpunit.xml.dist --group olivero" PHPUnit 9.6.15 by Sebastian Bergmann and contributors. Runtime: PHP 8.2.13 Configuration: ./core/phpunit.xml.dist Testing ............ 12 / 12 (100%) Time: 01:08.996, Memory: 148.00 MB OK (12 tests, 166 assertions) HTML output was generated https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-64-46741147.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-65-81885199.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-66-81885199.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-67-81885199.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-68-81885199.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-69-92476413.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-70-92476413.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-71-92476413.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-72-92476413.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-73-72834784.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-74-72834784.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-75-72834784.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-76-72834784.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-77-72834784.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-78-72834784.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-79-72834784.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-80-72834784.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-81-92586057.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-82-92586057.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-83-92586057.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalTests_Theme_OliveroTest-84-92586057.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-1-66562622.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-2-66562622.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-3-66562622.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-4-66562622.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-5-66562622.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-6-66562622.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-7-66562622.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-8-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-9-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-10-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-11-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-12-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-13-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-14-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-15-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-16-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-17-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-18-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-19-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-20-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-21-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-22-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-23-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-24-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-25-56519317.html https://drupal10.ddev.site/sites/simpletest/browser_output/Drupal_FunctionalJavascriptTests_Theme_OliveroMessagesTest-26-56519317.html Remaining self deprecation notices (1) 1x: The Drupal\Tests\field\Traits\EntityReferenceTestTrait is deprecated in drupal:10.2.0 and is removed from drupal:11.0.0. Instead, use \Drupal\Tests\field\Traits\EntityReferenceFieldCreationTrait. See https://www.drupal.org/node/3401941 1x in KernelTestSuite::suite from Drupal\Tests\TestSuites Failed to execute command ../vendor/bin/phpunit -v -c ./core/phpunit.xml.dist --group olivero: exit status 1 ```
tyler36 commented 1 month ago

Hi @gitressa to generate the HTML output, you'll need to configure the PHPUNIT environment.

I do this with a custom phpunit.xml file in the root of my project (it's the same one I use for Drupal site projects)

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

<phpunit bootstrap="web/core/tests/bootstrap.php" colors="true"
  beStrictAboutTestsThatDoNotTestAnything="true" beStrictAboutOutputDuringTests="true"
  beStrictAboutChangesToGlobalState="true" failOnWarning="true"
  printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter" cacheResult="true">
  <php>
    <ini name="error_reporting" value="32767" />
    <ini name="memory_limit" value="-1" />
    <env name="SIMPLETEST_BASE_URL" value="https://web" />
    <!-- <env name="SIMPLETEST_DB" value="sqlite://localhost/sites/default/files/.ht.sqlite"/> -->
    <env name="SIMPLETEST_DB" value="mysql://db:db@db/db" />
    <env name="BROWSERTEST_OUTPUT_DIRECTORY" value="web/sites/simpletest/browser_output" />
    <env name="BROWSERTEST_OUTPUT_BASE_URL" value="" />
    <env name="MINK_DRIVER_CLASS" value='' />
    <env name="MINK_DRIVER_ARGS" value='' />
    <env name="MINK_DRIVER_ARGS_WEBDRIVER" value='' />
    <env name="SYMFONY_DEPRECATIONS_HELPER" value="disabled" />
  </php>
  <testsuites>
    <testsuite name="custom">
      <directory>./web/modules/custom/*/tests</directory>
      <directory>./web/modules/custom/*/modules/*/tests</directory>
      <directory>./web/themes/custom/*/tests</directory>
    </testsuite>
  </testsuites>
  <listeners>
    <listener class="\Drupal\Tests\Listeners\DrupalListener">
    </listener>
  </listeners>
</phpunit>

Custom phpunit config file support was added in #30

DDEV Selenium Standalone Chrome takes a different approach and set the values on a container level.

Play around and see what works best for your project.

tyler36 commented 1 month ago

Hi @gitressa

You need to configure PHPunit. I specifically submitted #30 because I wanted to generate the HTML output and prefer dot-output instead of test names when running PHPunit.

So now, you have 2 choices.

  1. Add a phpunit.xml config file to the project root Generally, I use the same config file from a standard Drupal site. This option allows you to full control over how to run phpunit including cache, report and coverage options.

  2. Update .ddev/commands/web/phpunit command

    • Remove #ddev-generated from the top (line 3)
    • Remove --testdox from line 22

NOTE: This file will not longer be automaticated updated when you update the add-on.

gitressa commented 1 month ago

Thanks for creating that PR @tyler36! So as a user, I need to copy and edit a phpunit.xml file? Wouldn't it be great if DDEV Drupal Contrib had a turn-key (or built-in) solution, just like DDEV Selenium Standalone Chrome, or isn't this possible?

tyler36 commented 1 month ago

So as a user, I need to copy and edit a phpunit.xml file

Yes, either take control of the configuration. Or take control of the command.

tyler36 commented 1 month ago

if you go the config route, at mimimum, you want something like:

<phpunit bootstrap="web/core/tests/bootstrap.php"
  printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter">
  <testsuites>
    <testsuite name="modules">
      <directory>web/modules/custom</directory>
    </testsuite>
  </testsuites>
</phpunit>