Vergleich/ Diff zwischen zwei Textfiles in einem Unittest

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
frentmeister
User
Beiträge: 12
Registriert: Freitag 3. August 2018, 12:46

Dienstag 27. November 2018, 11:22

Hallo,

für einen Unittest muss ich 2 Textfiles vergleichen, am Ende des Test. Es handelt sich dabei um die Ausgabe einer Sysinfo.

Sobald es also einen Unterschied gibt zwischen File a und b soll eine Assertion entsprechend ein Fail schreiben für den Unittest.

Beispiel für einen Vergleich im File:

MAC-ADDRESS: 00A05736D0E3
VERSION: 3.32.0026 / 14.11.2018

Ich nutzte Python 3.7 und diverse Pakete:

Paramiko
Pyserial
Tftpy

Wie würdet ihr dies Umsetzen?

Ich habe mir schon einige Beispiele angeschaut, aber meiner Ansicht nach zu Komplex dafür.

Siehe hier:

https://stackoverflow.com/questions/323 ... m-txt-file
https://stackoverflow.com/questions/342 ... ifferences
Benutzeravatar
__blackjack__
User
Beiträge: 4038
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Dienstag 27. November 2018, 12:06

@frentmeister: Mir ist nicht so ganz klar was für Dich Unterschiede sind. Wenn die wirklich exakt gleich sein müssen, dann lies sie einfach ein und vergleiche sie mit ``==`` oder ``!=``. Ansonsten wird es halt etwas komplizierter und Du müsstest mehr ins Detail gehen.

Wenn Du dem Benutzer einen schöneren „diff“ zeigen möchtest, statt einfach nur ein “failed”, dann schau Dir mal `difflib` aus der Standardbibliothek an. Oder ob py.test schon automatisch was schöneres macht. :-)
“Programmieren ist ein Hobby, bei dem es einen riesigen Baumarkt mit quasi jedem Bauteil und Werkzeug und fast immer kostenlos gibt. Ob man deswegen in der Lage ist einen Kölner Dom zu bauen ist eine andere Frage. Arbeit steckt auf jeden Fall drin ;).” — Greebo, forum.ubuntuusers.de
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Dienstag 27. November 2018, 12:47

frentmeister hat geschrieben:
Dienstag 27. November 2018, 11:22
Wie würdet ihr dies Umsetzen?
Für den Anfang:

Code: Alles auswählen

assert open(filenameA).read() == open(filenameB).read(), "'%s'!='%s'" % (filenameA, filenameB)
a fool with a tool is still a fool, www.magben.de, YouTube
frentmeister
User
Beiträge: 12
Registriert: Freitag 3. August 2018, 12:46

Dienstag 27. November 2018, 14:32

Hallo und vielen Dank, dass hat mir geholfen!
Antworten