-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #122 from wunderio/feature/lando-phpunit-php-7.4
Upgrade local & Silta PHP to 7.4 & add PHPUnit testing setup.
- Loading branch information
Showing
15 changed files
with
388 additions
and
41 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
#!/bin/sh | ||
set -exu | ||
|
||
# Configure PHPUnit tests for the Lando environment. | ||
# @see: https://agile.coop/blog/drupal-phpunit-tests-lando/ | ||
# | ||
# Initially this was part of lando build process but we decided | ||
# to commit the phpunit.xml. Still the functionality of this | ||
# script could be useful as it always gets the latest distributed | ||
# configuration from core. From time to time it wouldn't hurt | ||
# try and update the file with 'lando regenerate-phpunit-config'. | ||
|
||
PHPUNIT_CONFIG=/app/phpunit.xml | ||
|
||
if [ -f "$PHPUNIT_CONFIG" ]; then | ||
rm "$PHPUNIT_CONFIG" | ||
fi | ||
|
||
cd /app | ||
cp -n web/core/phpunit.xml.dist "$PHPUNIT_CONFIG" | ||
sed -i 's|tests\/bootstrap\.php|./web/core/tests/bootstrap.php|g' "$PHPUNIT_CONFIG" | ||
sed -i 's|\.\/tests\/|./web/core/tests/|g' "$PHPUNIT_CONFIG" | ||
sed -i 's|directory>\.\/|directory>./web/core/|g' "$PHPUNIT_CONFIG" | ||
sed -i 's|directory>\.\.\/|directory>./web/core/|g' "$PHPUNIT_CONFIG" | ||
sed -i 's|<env name="SIMPLETEST_BASE_URL" value=""\/>|<env name="SIMPLETEST_BASE_URL" value="http://appserver_nginx" force="true"/>|g' "$PHPUNIT_CONFIG" | ||
sed -i 's|<env name="SIMPLETEST_DB" value=""\/>|<env name="SIMPLETEST_DB" value="sqlite://localhost/tmp/db.sqlite"/>|g' "$PHPUNIT_CONFIG" | ||
sed -i 's|<file>.\/web\/core\/tests\/TestSuites\/UnitTestSuite.php<\/file>|<directory>.\/web\/modules\/custom\/*\/tests\/src\/Unit<\/directory>|g' "$PHPUNIT_CONFIG" | ||
sed -i 's|<file>.\/web\/core\/tests\/TestSuites\/KernelTestSuite.php<\/file>|<directory>.\/web\/modules\/custom\/*\/tests\/src\/Kernel<\/directory>|g' "$PHPUNIT_CONFIG" | ||
sed -i 's|<file>.\/web\/core\/tests\/TestSuites\/FunctionalTestSuite.php<\/file>|<directory>.\/web\/modules\/custom\/*\/tests\/src\/Functional<\/directory>|g' "$PHPUNIT_CONFIG" | ||
sed -i 's|<file>.\/web\/core\/tests\/TestSuites\/FunctionalJavascriptTestSuite.php<\/file>|<directory>.\/web\/modules\/custom\/*\/tests\/src\/FunctionalJavascript<\/directory>|g' "$PHPUNIT_CONFIG" | ||
sed -i '/<file>.\/web\/core\/tests\/TestSuites\/BuildTestSuite.php<\/file>/d' "$PHPUNIT_CONFIG" | ||
vendor/bin/phpunit --migrate-configuration | ||
rm phpunit.xml.bak |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
<?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 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" bootstrap="./web/core/tests/bootstrap.php" colors="true" beStrictAboutTestsThatDoNotTestAnything="true" beStrictAboutOutputDuringTests="true" beStrictAboutChangesToGlobalState="true" failOnWarning="true" printerClass="\Drupal\Tests\Listeners\HtmlOutputPrinter" cacheResult="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"> | ||
<coverage> | ||
<include> | ||
<directory>./web/core/includes</directory> | ||
<directory>./web/core/lib</directory> | ||
<directory>./web/core/modules</directory> | ||
<directory>./web/core/modules</directory> | ||
<directory>./web/core/sites</directory> | ||
</include> | ||
<exclude> | ||
<directory>./web/core/modules/*/src/Tests</directory> | ||
<directory>./web/core/modules/*/tests</directory> | ||
<directory>./web/core/modules/*/src/Tests</directory> | ||
<directory>./web/core/modules/*/tests</directory> | ||
<directory>./web/core/modules/*/*/src/Tests</directory> | ||
<directory>./web/core/modules/*/*/tests</directory> | ||
</exclude> | ||
</coverage> | ||
<php> | ||
<!-- 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="http://appserver_nginx" force="true"/> | ||
<!-- Example SIMPLETEST_DB value: mysql://username:password@localhost/databasename#table_prefix --> | ||
<env name="SIMPLETEST_DB" value="sqlite://localhost/tmp/db.sqlite"/> | ||
<!-- Example BROWSERTEST_OUTPUT_DIRECTORY value: /path/to/webroot/sites/simpletest/browser_output --> | ||
<env name="BROWSERTEST_OUTPUT_DIRECTORY" value=""/> | ||
<!-- To have browsertest output use an alternative base URL. For example if | ||
SIMPLETEST_BASE_URL is an internal DDEV URL, you can set this to the | ||
external DDev URL so you can follow the links directly. | ||
--> | ||
<env name="BROWSERTEST_OUTPUT_BASE_URL" value=""/> | ||
<!-- To disable deprecation testing completely uncomment the next line. --> | ||
<!-- <env name="SYMFONY_DEPRECATIONS_HELPER" value="disabled"/> --> | ||
<!-- Example for changing the driver class for mink tests MINK_DRIVER_CLASS value: 'Drupal\FunctionalJavascriptTests\DrupalSelenium2Driver' --> | ||
<env name="MINK_DRIVER_CLASS" value=""/> | ||
<!-- Example for changing the driver args to mink tests MINK_DRIVER_ARGS value: '["http://127.0.0.1:8510"]' --> | ||
<env name="MINK_DRIVER_ARGS" value=""/> | ||
<!-- Example for changing the driver args to webdriver tests MINK_DRIVER_ARGS_WEBDRIVER value: '["chrome", { "chromeOptions": { "w3c": false } }, "http://localhost:4444/wd/hub"]' For using the Firefox browser, replace "chrome" with "firefox" --> | ||
<env name="MINK_DRIVER_ARGS_WEBDRIVER" value=""/> | ||
</php> | ||
<testsuites> | ||
<testsuite name="unit"> | ||
<directory>./web/modules/custom/*/tests/src/Unit</directory> | ||
</testsuite> | ||
<testsuite name="kernel"> | ||
<directory>./web/modules/custom/*/tests/src/Kernel</directory> | ||
</testsuite> | ||
<testsuite name="functional"> | ||
<directory>./web/modules/custom/*/tests/src/Functional</directory> | ||
</testsuite> | ||
<testsuite name="functional-javascript"> | ||
<directory>./web/modules/custom/*/tests/src/FunctionalJavascript</directory> | ||
</testsuite> | ||
<testsuite name="build"> | ||
</testsuite> | ||
</testsuites> | ||
<listeners> | ||
<listener class="\Drupal\Tests\Listeners\DrupalListener"> | ||
</listener> | ||
</listeners> | ||
<!-- Filter for coverage reports. --> | ||
</phpunit> |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
# Dockerfile for the PHP container. | ||
FROM eu.gcr.io/silta-images/php:7.3-fpm-v0.1 | ||
FROM eu.gcr.io/silta-images/php:7.4-fpm-v0.1 | ||
|
||
COPY --chown=www-data:www-data . /app | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Dockerfile for the Shell container. | ||
FROM eu.gcr.io/silta-images/shell:php7.3-v0.1 | ||
FROM eu.gcr.io/silta-images/shell:php7.4-v0.1 | ||
|
||
COPY --chown=www-data:www-data . /app |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
name: PHPUnit Example | ||
type: module | ||
description: Demontrates how to use PHPUnit-based tests. | ||
package: Example modules | ||
core_version_requirement: ^9 | ||
dependencies: | ||
- drupal:node |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
<?php | ||
|
||
/** | ||
* @file | ||
* Module file for phpunit_example. | ||
*/ | ||
|
||
/** | ||
* @defgroup phpunit_example Example: PHPUnit | ||
* @ingroup examples | ||
* @{ | ||
* This example demonstrates PHPUnit for Drupal 8 unit testing. | ||
*/ | ||
|
||
/** | ||
* @} End of "defgroup phpunit_example". | ||
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
<?php | ||
|
||
namespace Drupal\phpunit_example; | ||
|
||
/** | ||
* A class with features to show how to do unit testing. | ||
* | ||
* @ingroup phpunit_example | ||
*/ | ||
class AddClass { | ||
|
||
/** | ||
* A simple addition method with validity checking. | ||
* | ||
* @param int|float $a | ||
* A number to add. | ||
* @param int|float $b | ||
* Another number to add. | ||
* | ||
* @return int|float | ||
* The sum of $a and $b. | ||
* | ||
* @throws \InvalidArgumentException | ||
* If either $a or $b is non-numeric, we can't add, so we throw. | ||
*/ | ||
public function add($a, $b) { | ||
// Check whether the arguments are numeric. | ||
foreach ([$a, $b] as $argument) { | ||
if (!is_numeric($argument)) { | ||
throw new \InvalidArgumentException('Arguments must be numeric.'); | ||
} | ||
} | ||
return $a + $b; | ||
} | ||
|
||
} |
Oops, something went wrong.