0

100 分の 1 のテスト結果の概要を示すツールを作成しています。このツールはログ ファイルにアクセスし、合格および不合格の判定をチェックします。失敗した場合は、ログの前の行に戻って失敗の原因を把握する必要があります。linecache.getline は私のワークスペースで動作します (Eclipse 経由で Python を実行)。しかし、Windows インストーラー (.exe ファイル) を作成してコンピューターにアプリケーションをインストールした後、linecache.getline は何も返しません。これを修正するために setup.py ファイルに追加する必要があるものはありますか、それとも私のコードの問題ですか?

ツールコード

precon: wx.FileDialog からログファイルにアクセス

    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
4

1 に答える 1