我在我的應用程序上運行一些JUnit測試。每個測試都有一個for循環調用各自的方法10000次。 測試方法產生大量的日誌。這些日誌也由JUnit作爲測試輸出自動收集。 這種情況會導致OutOfMemoryError,因爲JUnit保留輸出的字符串緩衝區變得太大。 在測試過程中,我不需要這些日誌,所以如果有辦法告訴JUnit「不要保留程序輸出」,那就足夠了。 有什麼建議嗎?Junit輸出和OutOfMemoryError
5
A
回答
3
?有什麼方法可以覆蓋默認的日誌記錄行爲以忽略所有日誌消息?
1
一些選項:
-
,使其轉儲文件而不是標準輸出
- 更改您的日誌記錄。
- 用
-Xmx <some number>M
增加最大堆大小,如-Xmx 256M
。 您正在使用什麼類型的日誌記錄
0
我只是增加可用內存。嘗試添加-Xmx256m -Xmx256m到您的虛擬機。
0
該解決方案正在重寫日誌記錄屬性。現在我禁用了日誌記錄,並且似乎都工作了(測試仍在運行)。如果它有效,我將配置一種記錄到文件的方式。 謝謝大家(並祝賀Jeff爲本網站的朋友&)。
0
我看到一個答案已被接受,但這裏是如果我得到它打完了和測試,我會提交更快:
如果「記錄」你的意思的System.out.println()或者System.err.println(),如果你確定你的測試真的不需要日誌,那麼你可以通過編程方式重定向stdout和stderr。
// Save the original stdout and stderr
PrintStream psOut = System.out;
PrintStream psErr = System.err;
PrintStream psDevNull = null;
try
{
// Send stdout and stderr to /dev/null
psDevNull = new PrintStream(new ByteArrayOutputStream());
System.setOut(psDevNull);
System.setErr(psDevNull);
// run tests in loop
for (...)
{
}
}
finally
{
// Restore stdout and stderr
System.setOut(psOut);
System.setErr(psErr);
if (psDevNull != null)
{
psDevNull.close();
psDevNull = null;
}
}
這樣,你的測試輸出將被禁用,但如果你像這樣使用命令行上的重定向從JUnit的其他輸出不會,因爲這將是:
ant test &> /dev/null
的命令行重定向會導致所有Ant/JUnit的輸出被重定向,而不僅僅是來自正在測試的類的內容,所以這可能不是您想要的。編程重定向只會導致您的程序中的System.out和System.err的打印/寫入被重定向,並且您仍然會從Ant和JUnit獲得輸出。
0
如果它的任何幫助,設置outputtoformatters =「不」解決了我所有的記憶問題(在螞蟻1.7.1它這可以防止通過試驗生成的輸出被髮送到測試格式化)。
相關問題
- 1. Jenkins - > JUnit在Linux上拋出OutOfMemoryError PermGen
- 2. JUnit詳細輸出
- 3. 運行Junit測試用例時OutofMemoryError
- 4. Mapreduce爲大輸入文件拋出OutOfMemoryError
- 5. 未輸出Ant JUnit結果
- 6. 減少JUnit的輸出
- 7. JUnit的輸出報告
- 8. ByteArrayOutputStream拋出OutOfMemoryError
- 9. 拋出OutOfMemoryError Android
- 10. HttpClient.execute拋出OutOfMemoryError
- 11. OutOfMemoryError 100次junit測試使用DAO和hsqldb
- 12. JUnit測試控制檯輸入和輸出
- 13. 音頻流出OutOfMemoryError
- 14. OutOfMemoryError由BitmapFactory拋出
- 15. 從測試用例輸出中分離出JUnit標準輸出
- 16. Android ViewAnimator和OutOfMemoryError
- 17. AbstractStringBuilder enlargeBuffer和OutOfMemoryError
- 18. Glassfish 3.1.2.2和OutOfMemoryError
- 19. Junit輸出使用缺少的android-xml-junit-test-runner
- 20. Android JUnit在Eclipse JUnit視圖中沒有輸出
- 21. Junit。有沒有辦法讓輸出格式化爲rspec輸出?
- 22. 的boost ::測試,JUnit的XML輸出
- 23. 聲明Junit輸出不起作用
- 24. Maven不輸出junit CHECKSTYLE報告
- 25. JUnit輸出的黃瓜錯誤
- 26. AndroidImageSlider:createBitmap錯誤和OutOfMemoryError
- 27. 如何使用Eclipse和Android輸出其他調試信息JUnit
- 28. Rxjava +改造拋出的OutOfMemoryError
- 29. Netty-4.0.0.CR6拋出OutOfMemoryError
- 30. JUnit如何黑盒測試沒有輸入和輸出的功能? Java