Concevoir les tests unitaires et d'intégration

Talend Administration Center Guide utilisateur

EnrichVersion
5.6
EnrichProdName
Talend Big Data
Talend Data Fabric
Talend Data Management Platform
Talend Real-Time Big Data Platform
Talend Data Integration
Talend Big Data Platform
Talend ESB
Talend Data Services Platform
task
Administration et monitoring
Déploiement
EnrichPlatform
Talend Administration Center

Tout en concevant les processus, les développeurs doivent réfléchir aux tests qui les accompagnent.

Une façon de faire cela est de développer des Jobs de test locaux ou des Joblets qui les aideront à factoriser des traitements récurrents ou des étapes de transformation complexes.

Un Joblet est un composant spécifique qui factorise des composants d'un Job et facilite la lecture d'un Job complexe. Les Joblets peuvent être réutilisés dans différents Jobs ou plusieurs fois dans le même Job. Ils sont utiles car ils permettent d'effectuer une transformation au sein du Job, puis d'utiliser cette même transformation dans un Job de test, et le développer pour visualiser le Job complet si besoin.

Ce processus est similaire à des tests fonctionnels et/ou des tests JUnit.

Bonnes pratiques :

  • Pour les Joblets : les Jobs doivent avoir un Joblet standard associé qui pré-charge les contextes d'un fichier. Toutes les erreurs doivent être journalisées en utilisant les Joblets standards de journalisation des erreurs.

  • Pour les Jobs de test : les Jobs de test doivent être stockés dans un dossier test qui serait situé dans le dossier xxx créé précédemment. Pour plus d'informations concernant les conventions de nommage, consultez Concevoir les Jobs.

    Il est recommandé de concevoir un Job de test en utilisant un Joblet, une entrée et une sortie normalisées ainsi que des composants de type tAssertCatcher pour consolider les informations de statut d'exécution du Job.

    Il est également recommandé de créer et d'utiliser un contexte adapté à son environnement (un contexte Test pour exécuter les Jobs de test avec les métadonnées de cet environnement et un contexte Production pour exécuter les Jobs dans l'environnement de Production).

  • Lorsque la fonctionnalité est conçue et testée, il est recommandé d'utiliser Talend Repository Manager pour passer les éléments vers l'environnement d'Assurance qualité. Pour plus d'informations, consultez Déploiement vers l'environnement d'Assurance qualité.

Exemple de conception de Job et de tests :

Un Job nommé job_Load_leads_to_Marketo est créé au sein du projet DI_marketing, qui a pour but de récupérer, transformer et charger des données de prospects provenant de différentes sources, comme Salesforce, MySQL ou d'autres bases de données vers Marketo.

Dans ce Job, un Joblet nommé jl_Transformation est appelé et utilise un composant tMap pour gérer les transformations spécifiques et les mises en correspondances à appliquer sur les données.

Grâce à ce Joblet, il est possible de factoriser la transformation entre le véritable Job et le Job de test sans duplication de code. Un test d'intégration est donc créé et compare les données de sortie aux données de référence préalablement définies et stocke les résultats de ce test dans une base de données.

Les résultats peuvent être visualisés et analysés dans la base de données. Ce Job de test est exécuté avec les paramètres définis dans le contexte nommé Test.

De la même manière, vous pouvez créer un Job de test avec un composant tPrejob qui se connecte à une base de données, des composants tAssert qui confirment l'existence des fichiers d'entrée et de sortie, un tRunJob qui exécute le Job parent (JobA) de traitement des données, ainsi qu'un composant tFileCompare qui compare le résultat de ce Job avec un fichier de référence. Si les deux fichiers ne correspondent pas, le composant tAssertCatcher reporte ce statut dans la base de données.

Une fois que les développeurs ont conçu les tests d'intégration en local dans le Studio, ces tests doivent être automatisés avec des outils d'intégration continue tels que des systèmes de build. Pour plus d'informations, consultez Exécuter les tests.