• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

429
Views
¿Cómo comparar dos archivos como parte de unittest, mientras se obtiene un resultado útil en caso de discrepancia?

Como parte de algunas pruebas de Python que usan el marco unittest , necesito comparar dos archivos de texto relativamente cortos, donde uno es un archivo de salida de prueba y el otro es un archivo de referencia.

El enfoque inmediato es:

 import filecmp ... self.assertTrue(filecmp.cmp(tst_path, ref_path, shallow=False))

Funciona bien si pasa la prueba, pero en caso de falla, no hay mucha ayuda en la salida:

AssertionError: Falso no es cierto

¿Hay una mejor manera de comparar dos archivos como parte del marco de unittest , de modo que se genere algún resultado útil en caso de discrepancia?

about 3 years ago · Santiago Trujillo
3 answers
Answer question

0

Para obtener un informe de qué línea tiene una diferencia y una copia impresa de esa línea, use assertListEqual en el contenido, por ejemplo

 import io self.assertListEqual( list(io.open(tst_path)), list(io.open(ref_path)))
about 3 years ago · Santiago Trujillo Report

0

Todo lo que necesita hacer es agregar su propio mensaje para la condición de error. doc

self.assertTrue(filecmp(...), 'You error message')

about 3 years ago · Santiago Trujillo Report

0

La comparación de los archivos en forma de matrices conlleva errores de afirmación significativos:

 assert [row for row in open(actual_path)] == [row for row in open(expected_path)]

Puede usar eso cada vez que necesite comparar archivos, o ponerlo en una función. También puede colocar los archivos en forma de cadenas de texto en lugar de matrices.

about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error