-
Notifications
You must be signed in to change notification settings - Fork 456
Contribution guide Validate module locally
Use this script to test a module from your PC locally, without a CI environment. You can use it to run only the static validation (Pester tests), a deployment validation (dryRun) or an actual deployment to Azure. In the latter cases the script also takes care to replace placeholder tokens in the used module test & template files for you.
You can find the script under /utilities/tools/Test-ModuleLocally.ps1
If the switch for Pester tests (-PesterTest
) is provided the script will
- Invoke the module test for the provided template file path and run all tests for it.
If the switch for either the validation test (-ValidationTest
) or deployment test (-DeploymentTest
) is provided alongside a HashTable for the token replacement (-ValidateOrDeployParameters
), the script will
- Either fetch all module test files of the module's
.test
folder (default) or you can specify a single module test file by leveraging theModuleTestFilePath
parameter instead. - Create a dictionary to replace all tokens in these module test files with actual values. This dictionary will consist
- of the subscriptionID & managementGroupID of the provided
ValidateOrDeployParameters
object, - add all key-value pairs of the
-AdditionalTokens
object to it, - and optionally also add all key-value pairs specified in the
settings.yml
, under the 'local tokens settings'.
- of the subscriptionID & managementGroupID of the provided
- If the
-ValidationTest
parameter was set, it runs a deployment validation using theTest-TemplateDeployment
script. - If the
-DeploymentTest
parameter was set, it runs a deployment using theNew-TemplateDeployment
script (with no retries). - As a final step, it rolls the module test files back to their original state if either the
-ValidationTest
or-DeploymentTest
parameters were provided.
For details on how to use the function, please refer to the script's local documentation.
Note: The script must be loaded ('dot-sourced') before the function can be invoked.