2015-02-09 46 views
0

我試圖用pytest生成一個自定義報告,並試圖訪問由pytest生成的斷言消息,在失敗的情況下,在conftest.py文件中的全局夾具的終結器中。我能夠訪問測試的狀態,但我無法獲得錯誤消息。在終結器中訪問pytest斷言消息

我想訪問的狀態信息通過以下方式

@pytest.fixture(scope='function',autouse = True) 
def logFunctionLevel(request): 
    start = int(time.time() * 1000) 
    def fin(): 
     stop = int(time.time()) 
     fo = open("/Users/mahesh.nayak/Desktop/logs/test1.log", "a") 
     fo.write(request.cls.__name__ + "." + request.function.__name__ + " " + str(start) + " " + str(stop) + "\n") 

任何幫助訪問異常消息表示讚賞

感謝

編輯:由布魯諾答案確實幫助。添加下面的行打印斷言。

l = str(report.longrepr) 
    fo.write(l) 

回答

0

我不知道,你可以從一個燈具訪問異常消息,但你可以實現自定義pytest_runtest_logreport鉤(未經測試):

def pytest_runtest_logreport(report): 
    fo = open("/Users/mahesh.nayak/Desktop/logs/test1.log", "a") 
    fo.write('%s (duration: %s)\n' % (report.nodeid, report.duration)) 
    fo.close() 

希望有所幫助。