2012-07-26 57 views
2

我正在使用TestNG,WebDriver和log4j編寫一些測試 我想記錄assert nomatter的結果,如果結果爲true或false。例如,當我寫這個代碼:如何記錄Assert的真實結果

Assert.assertTrue(condition) 

我想在日誌中看到如果這是一個通過或失敗。現在,如果結果是FAIL,我只能看到任何日誌。 有沒有人有關於如何實現這一點的想法?

謝謝

+0

你爲什麼要這麼做?這是一種不尋常的工作流程 - 對於單元測試,測試值通常只在失敗時纔有意思。 – Tom 2012-07-26 07:19:22

回答

0

你可以覆蓋Assert-Class並自己觸發記錄器。

+0

你的意思是它會通過MyAssert.assertTrue(condition)來記錄結果然後調用Assert.asserTrue? – Tom 2012-07-26 07:20:14

+0

是的,我的意思是。如果記錄器沒有,你也可以使用MyAssert提供額外的記錄信息。 – rollstuhlfahrer 2012-07-26 08:03:23

0

沒有辦法告訴Assert記錄一個成功的斷言。你可以這樣做:

Assert.assertTrue(condition); 
logger.info(condition ? "PASS" : "FAIL"); 

或子類Assert並重新實​​現assertTrue做記錄你。請注意,在這種情況下,您的日誌行將聲明在Assert.assertTrue之內,而不是呼叫點,因此您必須以某種方式解決該問題。

+0

這就是我現在這樣做的方式,但我不想編寫額外的代碼來記錄它。 rollstuhlfahrer說,或許最好的辦法就是覆蓋斷言類。我認爲我可以找到一種我不知道的不同方式。非常感謝你們的支持,謝謝你的回覆 – vali83 2012-07-26 07:16:20

+2

不要以爲這是行得通的,如果它失敗了,日誌行就不會被調用。 – Tom 2012-07-26 07:20:42

+0

@Tom我不寫單元測試,但硒測試,有時我需要有斷言證明一些條件得到滿足,我也希望能夠在日誌中看到這一點 – vali83 2012-07-26 10:42:22