Maison >développement back-end >Tutoriel Python >Module Shutil de Python pour les tests automatisés
Dans le domaine dynamique du développement logiciel, garantir la qualité des applications grâce à des tests automatisés est vital. Les tests automatisés impliquent l'exécution de nombreux tests qui nécessitent une configuration spécifique de fichiers et de répertoires. La configuration et la suppression efficaces des environnements de test constituent une partie importante de ce processus qui peut souvent être une tâche fastidieuse et sujette aux erreurs sans les bons outils.
Trouver les bons outils pour simplifier les tâches peut faire une grande différence. Le module utilitaire standard connu sous le nom deshul est une abréviation d'utilitaires shell. Il fournit des opérations de fichiers de haut niveau pour copier, déplacer et supprimer des fichiers et des répertoires qui peuvent simplifier la gestion des environnements de test. Ce blog explique comment le module Shutil peut rationaliser les opérations sur les fichiers lors des tests de logiciels automatisés.
Pour garantir que chaque test démarre avec le bon environnement, nous devons automatiser le processus de configuration, en créant un environnement de test cohérent et isolé.
Le module Shutil fait partie de la bibliothèque standard Python, nous n'avons donc pas besoin d'installer quoi que ce soit de plus. Importez-le simplement au début de votre script.
# Import shell utility module import shutil
Lors du test d'une application, nous avons souvent besoin d'un ensemble spécifique de fichiers de données. Au lieu de copier manuellement des fichiers, quatre méthodes courantes offrent un moyen simple et efficace de copier un fichier à l'aide du module Shutil.
shutil.copy(source, destination, *, follow_symlinks=True)
Cette méthode copie le fichier source dans le répertoire ou le fichier spécifié dans la destination et renvoie la destination du fichier. Il copie les données du fichier et le mode d'autorisation du fichier, mais les métadonnées (heure de création et de modification du fichier) du fichier copié ne sont pas conservées. La source et la destination doivent être des objets ou des chaînes ressemblant à un chemin. La destination peut spécifier à la fois un fichier ou un répertoire. Si la destination spécifie un chemin vers un répertoire, le fichier sera copié dans le répertoire de destination avec le nom de fichier du chemin source.
Tout en travaillant avec un lien symbolique :
Si follow_symlinks=True, la destination sera une copie du fichier vers lequel pointe le lien symbolique dans la source. La valeur par défaut du paramètre follow_symlinks est True.
Si follow_symlinks=False, la destination sera créée sous forme de lien symbolique.
# Import shell utility module import shutil # Copy the content of source_file.txt to destination_file.txt shutil.copy('source_file.txt', 'destination_file.txt')
shutil.copy2(source, destination, *, follow_symlinks=True)
La méthodeshutil.copy2() fournit la fonctionnalité supplémentaire de préserver toutes les métadonnées du fichier qu'elle peut. Les autres caractéristiques sont les mêmes que pour la méthodeshutil.copy(). La destination peut spécifier à la fois un fichier ou un répertoire. Si la destination est un répertoire, le fichier sera copié avec le même nom que le nom du fichier source.
# Import shell utility module import shutil # Copy the content of source_file.txt to destination_file.txt shutil.copy2('source_file.txt', 'destination_file.txt')
J'ai utilisé cette méthode lors de l'automatisation du test car elle copie le contenu du fichier avec la plupart de ses métadonnées associées afin que nous puissions obtenir par programme le même résultat que copier et coller un fichier à l'aide de raccourcis clavier dans un gestionnaire de fichiers graphique et cela également de près reproduit le comportement d'une opération de copier-coller typique à l'aide d'une souris dans un gestionnaire de fichiers graphique.
shutil.copyfile(source, destination, *, follow_symlinks=True)
En utilisant cette méthode, le contenu d'un fichier est copié de sa source vers sa destination sans métadonnées. La source et la destination doivent être des objets ou des chaînes ressemblant à un chemin. Le chemin de destination peut uniquement spécifier un chemin vers un fichier mais ne peut pas spécifier un chemin vers un répertoire.
# Import shell utility module import shutil # Copy the content of source_file.txt to destination_file.txt shutil.copyfile('source_file.txt', 'destination_file.txt')
shutil.copyfileobj(fsrc, fdst, length)
Cette méthode copie le contenu de l'objet fichier source vers l'objet fichier de destination. La source et la destination doivent être des objets de type fichier. Il ne conserve pas les métadonnées et ne renvoie aucune valeur. Le paramètre facultatif de longueur spécifie une valeur entière pour la taille du tampon.
# Import shell utility module import shutil # Create file objects source_file_object = open("../hello.txt", "r") destination_file_object = open("CopyFile/copyFalseSrcPath.txt", "w") # Copy the content of the file object to another file object shutil.copyfileobj(source_file_object, destination_file_object)
Chaque méthode fournit différents aspects des opérations sur les fichiers, offrant la flexibilité et la puissance nécessaires pour répondre à divers besoins de test. Le module Shutil de Python offre des outils essentiels pour des opérations de fichiers efficaces dans les tests logiciels :
Certaines autres fonctions utilitaires couramment utilisées qui peuvent être utiles lors de l'automatisation de nos tests sont :
Plus de fonctions utilitaires et des descriptions détaillées peuvent être trouvées dans la documentation officielle.
Le module Shutil en Python sert d'ensemble d'outils polyvalent non seulement pour les tests de logiciels, mais également dans divers domaines du développement de logiciels tels que le contrôle et le déploiement de versions, la science des données et l'apprentissage automatique, l'administration informatique et système, la recherche et le monde universitaire, et bien d'autres. plus.
En intégrant Shutil dans nos processus de test, nous pouvons effectuer des opérations de fichiers complexes avec un minimum de code, ce qui nous permet d'économiser du temps et des efforts et de nous concentrer sur le développement de logiciels de haute qualité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!