Je crée un outil qui donne un aperçu des centièmes de résultats de test. Cet outil accède à un fichier journal, vérifie les verdicts Pass and Fail. Quand c'est un échec, j'ai besoin de revenir aux lignes précédentes du journal pour capturer la cause de l'échec. La linecache.getline fonctionne dans mon espace de travail (Python Run via eclipse). Mais après avoir créé un programme d'installation Windows (fichier .exe) et installé l'application sur mon ordinateur, linecache.getline ne renvoie rien. Y at-il quelque chose que j'ai besoin d'ajouter dans mon fichier setup.py pour résoudre ce problème ou est-ce mon problème de code?Linecache getline ne fonctionne pas après l'installation de mon application
Code outil
PRECON: de wx.FileDialog, accéder au fichier journal
self.result_path = dlg.GetPath()
try:
with open(self.result_path, 'r') as file:
self.checkLog(self.result_path, file)
def checkLog(self, path, f):
line_no = 1
index = 0
for line in f:
n = re.search("FAIL", line, re.IGNORECASE) or re.search("PASS", line, re.IGNORECASE)
if n:
currentline = re.sub('\s+', ' ', line.rstrip())
finalresult = currentline
self.list_ctrl.InsertStringItem(index, finaltestname)
self.list_ctrl.SetStringItem(index, 1, finalresult)
if currentline == "FAIL":
fail_line1 = linecache.getline(path, int(line_no - 3)) #Get reason of failure
fail_line2 = linecache.getline(path, int(line_no - 2)) #Get reason of failure
cause = fail_line1.strip() + " " + fail_line2.strip()
self.list_ctrl.SetStringItem(index, 2, cause)
index += 1
line_no += 1