Amazon n' CodeCatalyst est plus ouvert aux nouveaux clients. Les clients existants peuvent continuer à utiliser le service normalement. Pour de plus amples informations, veuillez consulter Comment effectuer une migration depuis CodeCatalyst.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Meilleures pratiques en matière de tests
Lorsque vous utilisez les fonctionnalités de test fournies par CodeCatalyst, nous vous recommandons de suivre ces bonnes pratiques.
Auto-discovery
Lorsque vous configurez des actions dans CodeCatalyst, la découverte automatique vous permet de découvrir automatiquement les résultats de divers outils, tels que les rapports de test JUnit, et de générer des CodeCatalyst rapports pertinents à partir de ceux-ci. Auto-discovery permet de garantir que les rapports continuent d'être générés même si les noms ou les chemins d'accès aux sorties découvertes changent. Lorsque de nouveaux fichiers sont ajoutés, il les découvre CodeCatalyst automatiquement et produit des rapports pertinents. Toutefois, si vous utilisez la découverte automatique, il est important de prendre en compte certains des aspects suivants de cette fonctionnalité :
-
Lorsque vous activez la découverte automatique dans votre action, tous les rapports découverts automatiquement du même type partagent les mêmes critères de réussite. Par exemple, un critère partagé, tel que le taux de réussite minimum, s'appliquerait à tous les rapports de test découverts automatiquement. Si vous avez besoin de critères différents pour des rapports du même type, vous devez configurer explicitement chacun de ces rapports.
-
Auto-discovery peut également trouver des rapports produits par vos dépendances et, si des critères de réussite sont configurés, l'action sur ces rapports risque d'échouer. Ce problème peut être résolu en mettant à jour la configuration du chemin d'exclusion.
-
Auto-discovery n'est pas garanti de produire la même liste de rapports à chaque fois, car il analyse l'action au moment de l'exécution. Dans le cas où vous souhaitez qu'un rapport particulier soit toujours produit, vous devez configurer les rapports de manière explicite. Par exemple, si les tests devaient cesser de fonctionner dans le cadre de votre build, le framework de test ne produirait aucune sortie et, par conséquent, aucun rapport de test ne serait produit et l'action pourrait réussir. Si vous souhaitez que le succès de votre action dépende de ce test particulier, vous devez configurer explicitement ce rapport.
Astuce
Lorsque vous démarrez un projet nouveau ou existant, utilisez la découverte automatique pour l'ensemble du répertoire du projet (incluez**/*). Cela permet de générer des rapports pour tous les fichiers de votre projet, y compris ceux des sous-répertoires.
Pour de plus amples informations, veuillez consulter Configuration des rapports de qualité dans une action.
Critères de réussite
Vous pouvez appliquer des seuils de qualité à vos rapports en configurant des critères de réussite. Par exemple, si deux rapports de couverture de code ont été découverts automatiquement, l'un avec une couverture de ligne de 80 % et l'autre avec une couverture de ligne de 60 %, les options suivantes s'offrent à vous :
-
Définissez les critères de réussite de la découverte automatique pour la couverture des lignes à 80 %. Cela entraînerait l'adoption du premier rapport et l'échec du deuxième rapport, ce qui entraînerait l'échec de l'action globale. Pour débloquer le flux de travail, ajoutez de nouveaux tests à votre projet jusqu'à ce que la couverture des lignes du deuxième rapport dépasse 80 %.
-
Définissez les critères de réussite de la découverte automatique pour la couverture des lignes à 60 %. Cela entraînerait l'adoption des deux rapports, ce qui se traduirait par le succès de l'action. Vous pourriez ensuite travailler à l'augmentation de la couverture du code dans le deuxième rapport. Cependant, avec cette approche, vous ne pouvez pas garantir que la couverture indiquée dans le premier rapport ne tombera pas en dessous de 80 %.
-
Configurez explicitement l'un des rapports ou les deux à l'aide de l'éditeur visuel ou en ajoutant une section YAML et un chemin explicites pour chaque rapport. Cela vous permettrait de configurer des critères de réussite distincts et des noms personnalisés pour chaque rapport. Cependant, avec cette approche, l'action peut échouer si les chemins du rapport changent.
Pour de plus amples informations, veuillez consulter Configuration des critères de réussite pour les rapports.
Include/exclude chemins
Lorsque vous examinez les résultats des actions, vous pouvez ajuster la liste des rapports générés en CodeCatalyst configurant IncludePaths etExcludePaths.
-
Utilisez cette
IncludePathsoption pour spécifier les fichiers et les chemins de fichiers que vous CodeCatalyst souhaitez inclure lors de la recherche de rapports. Par exemple, si vous spécifiez"/test/report/*", CodeCatalyst recherche l'intégralité de l'image de construction utilisée par l'action recherchant le/test/report/répertoire. Lorsqu'il trouve ce répertoire, CodeCatalyst il recherche les rapports dans ce répertoire.Note
Pour les rapports configurés manuellement,
IncludePathsil doit s'agir d'un modèle global correspondant à un seul fichier. -
Utilisez cette
ExcludePathsoption pour spécifier les fichiers et les chemins de fichiers que vous CodeCatalyst souhaitez exclure lors de la recherche de rapports. Par exemple, si vous spécifiez"/test/reports/**/*", les fichiers ne CodeCatalyst seront pas recherchés dans le/test/reports/répertoire. Pour ignorer tous les fichiers d'un répertoire, utilisez le modèle**/*glob.
Voici des exemples de modèles globulaires possibles.
| Modèle | Description |
|---|---|
|
|
Correspond à tous les noms d'objets du répertoire actuel qui contiennent un point |
|
|
Correspond à tous les noms d'objets du répertoire actuel se terminant par |
|
|
Correspond à tous les noms d'objets du répertoire actuel se terminant par |
|
|
Fait correspondre les noms des objets dans tous les répertoires se terminant par |
|
|
Correspond à un objet appelé |
|
|
Fait correspondre les objets d'un niveau du sous-dossier de |
|
|
Fait correspondre des objets situés à deux niveaux du sous-dossier de |
|
|
Correspond au sous-dossier |
CodeCatalyst interprète les modèles globulaires comme suit :
-
La barre oblique (
/) sépare les répertoires dans les chemins de fichiers. -
L'astérisque (
*) correspond à zéro ou plusieurs caractères d'un composant de nom sans dépasser les limites d'un dossier. -
Un double astérisque (
**) correspond à zéro ou plusieurs caractères d'un composant de nom dans tous les répertoires.
Note
ExcludePathsprend le pas sur. IncludePaths Si IncludePaths les deux ExcludePaths incluent le même dossier, ce dossier n'est pas analysé pour les rapports.