hashicorp / terraform-plugin-testing

Module for testing Terraform providers
Mozilla Public License 2.0
45 stars 11 forks source link

Consider running terraform validate against supplied configuration #270

Open bendbennett opened 8 months ago

bendbennett commented 8 months ago

terraform-plugin-testing version

v1.6.0

Use cases

TestStep.Config uses strings to represent terraform configuration. There is no guarantee that the configuration that is supplied is valid. TestStep.ConfigDirectory, and TestStep.ConfigFile provide for supplying terraform configuration in either a directory, or a file, respectively, but do not validate the configuration before it is executed.

Proposal

The terraform configuration supplied through Config, ConfigDirectory, or ConfigFile could be validate using terraform validate prior to execution, and errors raised if the configuration is invalid.

References

bflad commented 8 months ago

Does terraform plan output configuration validation issues differently than terraform validate? My understanding is that validation has to occur during plan/apply anyways, since it needs to fully read the configuration. Running a separate provider-required command also means that provider plugins will need to an additional start-stop.