2016-10-28 34 views
0

我正在使用py.test與硒和applitools眼睛---後面這些部分無關緊要,只有py.test部分。我使用會話級夾具計算測試運行的一些會話級配置,像這樣:如何打印py.test會話的燈具值

@pytest.fixture(scope='session') 
def branch(request,timestamp): 
branch = request.config.getoption('--branch') 
if not branch and not request.config.getoption('--live'): 
    # auto-generate branch 
    branch = "auto " + timestamp 
return branch 

我想打印的計算值作爲試驗報頭的一部分---或任何其他方式把它變成真正的標準輸出。

我第一次嘗試在上面的分支函數中使用capsys.disable(),但是我得到了一個錯誤消息,說明capsys是一個函數級別的fixture,所以不能被session級別的fixture使用。很公平。

然後我試圖複製添加信息的測試報告標題的例子:

def pytest_report_header(config,branch): 
    print branch 

但它似乎並不認爲分支可作爲pytest_report_header夾具。我可以直接調用分支()函數,但是這種方式打敗了目的。

我見過this question但我不知道它是否適用---它是有點超過我的頭py.test明智。

這似乎應該是一件簡單的事情,但我堅持---任何想法?

回答

0

我還沒有想出我問過的問題的答案,但我已經想出了一個解決方案來解決我的問題:因爲我在進行硒測試,所以在我的情況下,整個輸出捕獲的東西是無關緊要的,所以我可以完全關閉它。

我剛剛發現了用於py.test的-s標誌,就是這樣做的。