{ "uuid": [ { "value": "2ce56fae-e16d-4ff5-a13e-2a0d766924f6" } ], "langcode": [ { "value": "en" } ], "type": [ { "target_id": "daily_email", "target_type": "node_type", "target_uuid": "8bde1f2f-eef9-4f2d-ae9c-96921f8193d7" } ], "revision_timestamp": [ { "value": "2025-04-21T01:21:38+00:00" } ], "revision_uid": [ { "target_type": "user", "target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849" } ], "revision_log": [], "status": [ { "value": true } ], "uid": [ { "target_type": "user", "target_uuid": "b8966985-d4b2-42a7-a319-2e94ccfbb849" } ], "title": [ { "value": "Another way to create test module configuration" } ], "created": [ { "value": "2024-02-17T00:00:00+00:00" } ], "changed": [ { "value": "2025-04-21T01:21:38+00:00" } ], "promote": [ { "value": false } ], "sticky": [ { "value": false } ], "default_langcode": [ { "value": true } ], "revision_translation_affected": [ { "value": true } ], "path": [ { "alias": "\/daily\/2024\/02\/17\/another-way-to-create-test-module-configuration", "langcode": "en" } ], "body": [ { "value": "\n
In one of the lessons in my free automated testing in Drupal email course<\/a>, I explain how I create configuration that I need within my tests, such as adding a custom field:<\/p>\n\n But how do you know what to name the configuration files and what content to put in them?<\/p>\n \n 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.<\/p>\n<\/blockquote>\n\n As well as creating the fields in the Drupal UI, I was also using it to export the configuration files I needed:<\/p>\n\n 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.<\/p>\n \n The filename is shown at the bottom of the page, and you can copy the content into files within your module.<\/p>\n<\/blockquote>\n\n After reading that lesson, somene replied and reminded me that there's a Instead of exporting to the standard configuration directory, I can do it to a temporary directory:<\/p>\n\n Everyhing in a I still need to edit the files to remove the I used this approach when writing my SaaS code yesterday<\/a> and it worked well.<\/p>\n\n ",
"format": "full_html",
"processed": "\n \n
\n
There's another way<\/h2>\n\n
--destination<\/code> option you can use with the
drush config:export<\/code> command.<\/p>\n\n
run drush cex --destination \/app\/.ignored\/config\n<\/code><\/pre>\n\n
.ignored<\/code> direcotry is automatically ignored by Git, and to get the files I need, I can use Linux's
find<\/code> command to find any files that contain the field name and copy them into my test module directory:<\/p>\n\n
find .ignored\/config \\\n -type f \\\n -name \\*drupal_project\\* \\\n -exec cp -r {} web\/modules\/custom\/foo\/modules\/foo_test\/config\/install \\;\n<\/code><\/pre>\n\n
uuid<\/code> and
_core<\/code> values, but this approach means less clicking in the Drupal UI which makes me more productive.<\/p>\n\n