Un test d'acceptation est une fonction de test Go avec le préfixe TestAcc.
Avant d'exécuter : les tests d'acceptation créent une infrastructure réelle contre l'API en direct du fournisseur, ce qui peut entraîner des coûts. Confirmez que les identifiants configurés pointent vers un compte de test avant de procéder.
Pour exécuter un test d'acceptation ciblé nommé TestAccFeatureHappyPath :
-
Exécutez
go test -run=TestAccFeatureHappyPath -timeout 60mavec les variables d'environnement suivantes :TF_ACC=1
Par défaut, la sortie du test est non-détaillée. Passez toujours un
-timeoutexplicite :go testarrête toute exécution de test après 10 minutes par défaut, et les tests d'acceptation dépassent régulièrement ce délai. -
Les tests d'acceptation peuvent nécessiter des variables d'environnement supplémentaires pour des fournisseurs spécifiques. Pour découvrir lesquelles :
- Lisez la fonction
PreCheck/testAccPreCheckdu test et parcourez les fichiers de test :grep -rn "os.Getenv" --include="*_test.go". - Consultez le README du repository, CONTRIBUTING, ou
.env.examplepour la documentation de configuration des tests. - La méthode
Configuredu fournisseur montre comment les identifiants sont résolus ; utilisez la skillprovider-configuration(si disponible) pour comprendre une chaîne de fournisseurs d'identifiants.
Définissez les variables pour l'invocation d'un seul test (
EXAMPLE_API_KEY=... TF_ACC=1 go test ...) plutôt que de les exporter dans le profil du shell, et ne mémorisez jamais les valeurs secrètes dans des fichiers au sein du repository. - Lisez la fonction
Pour diagnostiquer un test d'acceptation défaillant, utilisez ces options, dans l'ordre. Ces options sont cumulatives : chaque option inclut toutes les options précédentes.
- Réexécutez le test. Utilisez l'option
-count=1pour vous assurer quego testn'utilise pas un résultat mis en cache. - Offrez une sortie
go testdétaillée. Utilisez l'option-v. - Offrez une journalisation au niveau du débogage. Activez la journalisation au niveau du débogage avec la variable d'environnement
TF_LOG=debug. - Offrez de conserver l'espace de travail Terraform du test d'acceptation. Activez la persistance avec la variable d'environnement
TF_ACC_WORKING_DIR_PERSIST=1.
Un test d'acceptation réussi peut être un faux négatif. Pour « inverser » un test d'acceptation réussi nommé TestAccFeatureHappyPath :
- Modifiez la valeur d'une des TestCheckFuncs dans l'une des TestSteps dans la TestCase.
- Exécutez le test d'acceptation. Attendez-vous à ce que le test échoue.
- Si le test échoue, annulez la modification et signalez un retournement réussi. Sinon, conservez la modification et signalez un retournement infructueux.
Si une exécution de test est interrompue, des ressources réelles peuvent être laissées ; exécutez les sweepers du fournisseur s'il les enregistre (voir la référence des sweepers dans la skill provider-test-patterns, si disponible). Pour la rédaction ou la restructuration de tests, utilisez la skill provider-test-patterns.