DEV Community

Oliver Davies
Oliver Davies

Posted on • Originally published at oliverdavies.uk on

Another way to create test module configuration

In one of the lessons in my free automated testing in Drupal email course, I explain how I create configuration that I need within my tests, such as adding a custom field:

But how do you know what to name the configuration files and what content to put in them?

Rather than trying to write them by hand, I create the configuration I need, such as fields, within a Drupal site and then export and edit the files I need.

As well as creating the fields in the Drupal UI, I was also using it to export the configuration files I needed:

Once Drupal is installed and the configuration has been created, you can go to - /admin/config/development/configuration/single/export and select the configuration type and name.

The filename is shown at the bottom of the page, and you can copy the content into files within your module.

There's another way

After reading that lesson, somene replied and reminded me that there's a --destination option you can use with the drush config:export command.

Instead of exporting to the standard configuration directory, I can do it to a temporary directory:

run drush cex --destination /app/.ignored/config

Enter fullscreen mode Exit fullscreen mode

Everyhing in a .ignored direcotry is automatically ignored by Git, and to get the files I need, I can use Linux's find command to find any files that contain the field name and copy them into my test module directory:

find .ignored/config \
  -type f \
  -name \*drupal_project\* \
  -exec cp -r {} web/modules/custom/foo/modules/foo_test/config/install \;

Enter fullscreen mode Exit fullscreen mode

I still need to edit the files to remove the uuid and _core values, but this approach means less clicking in the Drupal UI which makes me more productive.

I used this approach when writing my SaaS code yesterday and it worked well.

P.S. Do you need immediate access to an expert Drupal Developer? With my Drupal development subscription, make unlimited requests for a fixed monthly price in less time than posting to a job board!

Top comments (0)