2013-10-11 67 views
11

py.test assert docspy.test:格式化失敗的斷言和打印自定義消息

...如果你這樣的斷言:像這樣指定一個消息:

assert a % 2 == 0, "value was odd, should be even"

那麼沒有斷言 內省會發生,並且消息將簡單顯示在回溯中的 。

Python的內置unittest模塊做到這一點也除非TestCaselongMessage = True

具有良好的斷言格式是測試開發者友好的,而自定義消息更多的業務需求/人性化。當你不在測試的上下文中時,自定義消息特別有用,即它可以回答那裏斷言的內容,而無需查看代碼。所以,我想有兩條消息。

有沒有什麼辦法讓py.test的很好的assert自省和格式化並打印自定義消息?

回答

2

目前還沒有辦法使斷言的額外信息加上消息。我認爲它可以被添加,但不知道需要多少努力。到目前爲止,這個問題還沒有達到我所知。隨意提出問題或嘗試拉請求。但是,請注意,如果您經歷編寫自定義人類可讀信息的努力,則可能還會從表達式中提取一些有趣的值。

+0

「你大概也可以從表達中提取一些有趣的值」 - 當然,但是以重複自己爲代價,並且我沒有得到很好的格式。無論如何,我會跟進[該項目的BitBucket](https://bitbucket.org/hpk42/pytest/)。 – Bluu

+0

我沒有在py.test的bitbucket頁面上看到有關這方面的任何討論。是否加入了這個討論過的? –

+0

@ durden2.0不,它在我的雷達下降了,因爲我決定重複自己(並且輸出的表達稍差)。 – Bluu