En el dominio dinámico del desarrollo de software, garantizar la calidad de las aplicaciones mediante pruebas automatizadas es vital. Las pruebas automatizadas implican la ejecución de numerosas pruebas que requieren una configuración específica de archivos y directorios. Configurar y desmantelar entornos de prueba de manera eficiente es una parte importante de este proceso que a menudo puede ser una tarea tediosa y propensa a errores sin las herramientas adecuadas.
Encontrar las herramientas adecuadas para simplificar las tareas puede marcar una gran diferencia. El módulo de utilidades estándar conocido como Shutil es una abreviatura de utilidades de shell. Proporciona operaciones de archivos de alto nivel para copiar, mover y eliminar archivos y directorios que pueden simplificar la gestión de entornos de prueba. Este blog explica cómo el módulo Shutil puede optimizar las operaciones de archivos en pruebas de software automatizadas.
Para garantizar que cada prueba comience con el entorno correcto, necesitamos automatizar el proceso de configuración, creando un entorno de prueba consistente y aislado.
El módulo Shutil es parte de la biblioteca estándar de Python, por lo que no necesitamos instalar nada adicional. Simplemente impórtalo al principio de tu script.
# Import shell utility module import shutil
Al probar una aplicación, a menudo necesitamos un conjunto específico de archivos de datos. En lugar de copiar archivos manualmente, cuatro métodos comunes brindan una manera fácil y eficiente de copiar un archivo usando el módulo Shutil.
shutil.copy(source, destination, *, follow_symlinks=True)
Este método copia el archivo de origen al directorio o archivo especificado en el destino y devuelve el destino del archivo. Copia los datos del archivo y el modo de permiso del archivo, pero los metadatos (hora de creación y modificación del archivo) del archivo copiado no se conservan. El origen y el destino deben ser cadenas o objetos similares a rutas. El destino puede especificar tanto un archivo como un directorio. Si el destino especifica una ruta a un directorio, el archivo se copiará al directorio de destino con el nombre de archivo de la ruta de origen.
Mientras trabaja con enlace simbólico:
Si follow_symlinks=True, el destino será una copia del archivo al que apunta el enlace simbólico en el origen. El valor predeterminado del parámetro follow_symlinks es Verdadero.
Si follow_symlinks=False, el destino se creará como un enlace simbólico.
# 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)
El métodoshutil.copy2() proporciona la funcionalidad adicional de preservar todos los metadatos del archivo que pueda. Otras características son las mismas que para el método Shutil.copy(). El destino puede especificar tanto un archivo como un directorio. Si el destino es un directorio, el archivo se copiará con el mismo nombre que el nombre del archivo de origen.
# 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')
Utilicé este método mientras automatizaba la prueba, ya que copia el contenido del archivo junto con la mayoría de sus metadatos asociados para que podamos lograr mediante programación el mismo resultado que copiar y pegar un archivo usando atajos de teclado en un administrador de archivos gráfico y también de cerca. replica el comportamiento de una operación típica de copiar y pegar usando un mouse en el administrador de archivos gráfico.
shutil.copyfile(source, destination, *, follow_symlinks=True)
Con este método, el contenido de un archivo se copia desde su origen a su destino sin metadatos. El origen y el destino deben ser cadenas o objetos similares a rutas. La ruta de destino solo puede especificar una ruta a un archivo, pero no puede especificar una ruta a un directorio.
# 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)
Este método copia el contenido del objeto del archivo de origen al objeto del archivo de destino. El origen y el destino deben ser objetos similares a archivos. No conserva metadatos y no devuelve ningún valor. El parámetro de longitud opcional especifica un valor entero para el tamaño del búfer.
# 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)
Cada método proporciona diferentes aspectos de las operaciones de archivos, brindando flexibilidad y potencia para satisfacer diversas necesidades de prueba. El módulo Shutil de Python ofrece herramientas esenciales para operaciones eficientes con archivos en pruebas de software:
Algunas otras funciones de utilidad comúnmente utilizadas que pueden ser útiles al automatizar nuestras pruebas son:
Puedes encontrar más funciones de utilidad y descripciones detalladas en la documentación oficial.
El módulo Shutil en Python sirve como un conjunto de herramientas versátil no solo en pruebas de software sino también en diversos campos del desarrollo de software, como control e implementación de versiones, ciencia de datos y aprendizaje automático, administración de sistemas y TI, investigación y academia, y muchos más. más.
Al integrar Shutil en nuestros procesos de prueba, podemos realizar operaciones de archivos complejas con un código mínimo, lo que nos ahorra tiempo y esfuerzo y nos permite centrarnos en desarrollar software de alta calidad.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3