我通常使用ruby代碼,並使用rspec進行單元測試。Junit。有沒有辦法讓輸出格式化爲rspec輸出?
現在我必須在java中做一些工作,所以我使用JUnit。多個測試套件的輸出如下所示;
test:
[junit] Running com.whatever.MapperTest
[junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.542 sec
[junit] Running com.whatever.ReducerTest
[junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.391 sec
[junit] Running com.whatever.DenormalizerTest
[junit] Tests run: 8, Failures: 0, Errors: 0, Time elapsed: 0.046 sec
[junit] Running com.whatever.EventTest
[junit] Tests run: 31, Failures: 0, Errors: 0, Time elapsed: 0.081 sec
BUILD SUCCESSFUL
Total time: 5 seconds
這是相當密集的文本,並且使它有點難以看到故障和錯誤。
使用RSpec,我得到這樣的輸出;
............F........F........E.......
其中'。'代表通過測試,'F'是失敗,'E'是錯誤。在這個輸出下面是所有失敗/錯誤的細節。
我發現這種格式更容易查看 - 故障和錯誤以某種方式跳躍出來,當從JUnit的正常彙總輸出中查看運行/失敗/錯誤的計數時,失敗和錯誤跳躍出來。
我已經通過build.xml文件的junit任務中的幾個選項,其中包括;
<formatter type="plain" usefile="false" />
和
<junit printsummary="true">
使用格式化= 「普通」 了太多的冗餘信息填滿屏幕。我不需要將每一個通行證列爲一行文本 - 只需要一個點是理想的。
有誰知道如果自定義格式化程序已被寫入,產生類似於我想要的格式?
無論我使用哪種工具都需要在命令行上工作,花哨的GUI工具不是一個選項。
感謝您的支持。我正在與格式化程序取得一些進展,但我遇到了一些障礙。我只能鉤入單個測試套件的開始和結束(即包含一組測試的單個Java類)。所以,我正在吐出每套測試的一系列點。是否有任何方法可以在整個測試套件的開始和結束處獲得,因此我可以在所有套件中爲所有測試收集點並將它們輸出爲一個塊? – digitalronin
是的,它看起來並不是一個簡單的解決方案。看起來它可能基於你正在使用的跑步者。您可以嘗試將測試分組到一個套件中,然後運行該套件(查看套件之後是否觸發endTest())。您可能可以使用RunListener。它有一個函數testRunFinished(),看起來它可以做你想做的事情。 – Joe
謝謝,我會研究使用RunListener – digitalronin