Skip to content

Commit

Permalink
feat: Allow installing and testing with all database types
Browse files Browse the repository at this point in the history
  • Loading branch information
rfay committed Oct 2, 2024
1 parent 66a2631 commit 90eeb91
Show file tree
Hide file tree
Showing 6 changed files with 327 additions and 285 deletions.
163 changes: 90 additions & 73 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,73 +1,90 @@
# ddev-core-dev

This is a DDEV addon for doing Drupal core development.

We're in #ddev-for-core-dev on [Drupal Slack](https://www.drupal.org/community/contributor-guide/reference-information/talk/tools/slack) (but please try and keep work and feature requests in Issues where it's visible to all 🙏)

```
git clone https://git.drupalcode.org/project/drupal.git drupal
cd drupal
ddev config --omit-containers=db --disable-settings-management
ddev start
ddev get justafish/ddev-drupal-core-dev
ddev restart
ddev composer install
# See included commands
ddev drupal list
# Install drupal
ddev drupal install
# Run PHPUnit tests
ddev phpunit core/modules/sdc
# Run Nightwatch tests (currently only runs on Chrome)
ddev nightwatch --tag core
```

## Nightwatch Examples

You can watch Nightwatch running in real time at https://drupal.ddev.site:7900
for Chrome and https://drupal.ddev.site:7901 for Firefox. The password is
"secret". YMMV using Firefox as core tests don't currently run on it.

Only core tests
```
ddev nightwatch --tag core
```

Skip running core tests
```
ddev nightwatch --skiptags core
```

Run a single test
```
ddev nightwatch tests/Drupal/Nightwatch/Tests/exampleTest.js
```

a11y tests for both the admin and default themes
```
ddev nightwatch --tag a11y
```

a11y tests for the admin theme only
```
ddev nightwatch --tag a11y:admin
```

a11y tests for the default theme only
```
ddev nightwatch --tag a11y:default
```

a11y test for a custom theme used as the default theme
```
ddev nightwatch --tag a11y:default --defaultTheme bartik
```

a11y test for a custom admin theme
```
ddev nightwatch --tag a11y:admin --adminTheme seven
```
# ddev-core-dev

This is a DDEV addon for doing Drupal core development.

We're in #ddev-for-core-dev on [Drupal Slack](https://www.drupal.org/community/contributor-guide/reference-information/talk/tools/slack) (but please try and keep work and feature requests in Issues where it's visible to all 🙏)

`ddev drush` is fully supported, along with using or testing MariaDB, MySQL, and PostgreSQL databases (and Sqlite3)


```
git clone https://git.drupalcode.org/project/drupal.git drupal
cd drupal
ddev config --project-type=drupal
ddev get justafish/ddev-drupal-core-dev
ddev restart
ddev composer install
ddev config --update
# Install drupal
ddev drush si -y --account-pass==admin
# Run PHPUnit tests
ddev phpunit core/modules/sdc
# Run Nightwatch tests (currently only runs on Chrome)
ddev nightwatch --tag core
```

## Using various database types

By default, the DDEV default database type is used (MariaDB).

To use another supported database type,
`ddev delete -Oy` and `ddev config --database=mysql:8.0` or `ddev config --database=postgres:16` for example.

To use Sqlite,
```
ddev stop
ddev config --disable-settings-management --omit-containers=db
rm -rf web/sites/default/settings*.php web/sites/default/files
ddev start
ddev drupal install
```

## Nightwatch Examples

You can watch Nightwatch running in real time at https://drupal.ddev.site:7900
for Chrome and https://drupal.ddev.site:7901 for Firefox. The password is
"secret". YMMV using Firefox as core tests don't currently run on it.

Only core tests
```
ddev nightwatch --tag core
```

Skip running core tests
```
ddev nightwatch --skiptags core
```

Run a single test
```
ddev nightwatch tests/Drupal/Nightwatch/Tests/exampleTest.js
```

a11y tests for both the admin and default themes
```
ddev nightwatch --tag a11y
```

a11y tests for the admin theme only
```
ddev nightwatch --tag a11y:admin
```

a11y tests for the default theme only
```
ddev nightwatch --tag a11y:default
```

a11y test for a custom theme used as the default theme
```
ddev nightwatch --tag a11y:default --defaultTheme bartik
```

a11y test for a custom admin theme
```
ddev nightwatch --tag a11y:admin --adminTheme seven
```
31 changes: 31 additions & 0 deletions config.core-dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# #ddev-generated
# This file is placed by the justafish/ddev-drupal-core-dev addon.

webimage_extra_packages: ["chromium-driver"]
ddev_version_constraint: '>=v1.23.0'
hooks:
post-start:
- exec: |
dburl='sqlite://localhost/sites/default/files/db.sqlite'
cp .ddev/core-dev/phpunit-chrome.xml core/phpunit.xml
cp .ddev/core-dev/.env core/.env
if ping -c 1 db >/dev/null 2>&1; then
case ${DDEV_DATABASE_FAMILY:-} in
mysql)
# the backslash here is to prevent perl from eating the @
dburl='mysql://db:db\@db/db'
;;
postgres)
dburl='pgsql://db:db\@db/db'
;;
esac
fi
perl -pi -e "s|SIMPLETEST_DB_VALUE|${dburl}|g" core/phpunit.xml
perl -pi -e "s|DRUPAL_TEST_DB_URL_VALUE|${dburl}|g" core/.env
perl -pi -e "s|DRUPAL_CORE_DDEV_URL|${DDEV_PRIMARY_URL}|g" core/phpunit.xml
upload_dirs:
# The install technique tries to remove all of sites/default/files
# but with DDEV + mutagen that isn't possible.
# so just redirect the upload_dirs.
- .ddev/tmp
2 changes: 1 addition & 1 deletion core-dev/.env
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ DRUPAL_TEST_BASE_URL=http://web

# By default we use sqlite as database. Use
# mysql://username:password@localhost/databasename#table_prefix for mysql.
DRUPAL_TEST_DB_URL=sqlite://localhost/sites/default/files/db.sqlite
DRUPAL_TEST_DB_URL=DRUPAL_TEST_DB_URL_VALUE

#############
# Webdriver #
Expand Down
Loading

0 comments on commit 90eeb91

Please sign in to comment.