2015-05-22 66 views
0
def different_type(): 
    if types == 'int64': 
     pass 
    else: 
     raise KeyError('field type not recognized') 


def test_TypeErrorHandling(): 
    with pytest.raises(KeyError) as excinfo: 
     different_type() 
    assert excinfo.value.message == 'field type not recognized' 
    print excinfo.value.message 

當前我有兩段代碼,並且嘗試打印出test_TypeErrorHandling()中定義的錯誤消息(字段類型未識別)在命令提示符屏幕上,當我做pytest運行。但它不會打印出來。嘗試在pytest屏幕上打印異常錯誤

任何意見呢?謝謝

+1

您的代碼示例似乎不是自包含的。例如,變量'types'從哪裏來?是否有可能在最後幾行中縮進級別有點搞砸了? – aepsil0n

回答

1

您的打印語句在assert語句之後。如果斷言失敗,那麼print語句將不會執行(儘管你會得到一些關於它的值的消息,所以我猜這不是發生了什麼)。

如果斷言成功並且測試通過,則會禁止打印語句(stdout)。您想要使用-s運行pytest,如Capturing of the stdout/stderr output中所述。