我正在Android Studio中運行測試,但我相信這也是一個Intellij問題。測試通過的很好,但仔細觀察後,我發現堆棧跟蹤輸出到測試控制檯。不幸的是,當測試完成時,輸出被清除。有誰知道我可以在哪裏找到這些日誌?我查看了Intellij日誌,但jUnit runner似乎沒有在那裏記錄它們,這是有道理的。從intellij/android studio中獲取jUnit的標準錯誤輸出
0
A
回答
1
這是IntelliJ IDEA中的錯誤行爲。它主要發生在快速運行的測試中。它被報告爲通過IDEA-66683 Output from fast running parameterised JUnit test is not grouped correctly和許多重複的錯誤。該票據被標記爲即將發佈的IntelliJ IDEA第15版中的固定版本。它可能會在某些時候合併到Android Studio中。
該錯誤主要發生在快速運行測試。例如,在下面的測試中,當我運行類中的所有測試,我不會看到System.err
輸出(有時甚至沒有System.out
輸出)看着那個人測試的結果時:
@Test
public void simpleTest()
{
System.err.println("Std Err from simpleTest");
System.out.println("Std out from simpleTest");
new RuntimeException("A sample Exception").printStackTrace();
}
不過,我會爲這個測試,其末添加延遲:
@Test
public void simpleTest()
{
System.err.println("Std Err from simpleTest");
System.out.println("Std out from simpleTest");
new RuntimeException("A sample Exception").printStackTrace();
try {TimeUnit.SECONDS.sleep(2);} catch (InterruptedException ignore) {}
}
1秒的延遲,我沒看到的結果。但是2秒鐘,我做到了。我的懷疑是有一個問題,即IntelliJ IDEA需要一些時間來「抓取」每個單獨測試的輸出並將其放入某種緩衝區或集合中以用於該測試。但是如果測試在該過程完成之前結束,則不顯示該測試結果的輸出。這似乎是System.err
比System.out
更多的問題,但有時我已經看到它發生在後者。
這是個壞消息。好消息是,輸出可以用其他方式看到...
如果您運行單個測試,通常您可以通過選擇測試名稱來查看所有輸出。如上所述,如果您在班級中運行所有測試,則在查看單個測試結果時,system.err
輸出可能不會全部可見。但是,如果通過選擇樹頂部的類名查看所有測試組合輸出,則可以看到合併輸出(應該)具有所有測試的輸出。不幸的是,它混雜在一起。更糟糕的情況是,單獨運行測試,以便更清楚地看到細節。
相關問題
- 1. 從高架子進程獲取錯誤和標準輸出
- 2. 從測試用例輸出中分離出JUnit標準輸出
- 3. Linux的標準輸入,標準輸出,標準錯誤
- 4. 捕獲標準錯誤和標準輸出的好方法
- 5. 獲取派生進程的標準輸出/標準錯誤在子進程
- 6. 如何從CreateProcessWithLogonW獲取標準輸出?
- 7. 從Python Gnome Applet獲取標準輸出
- 8. bash腳本不捕獲標準輸出,只是標準錯誤
- 9. 從tsls輸出中提取標準錯誤
- 10. 標準錯誤輸出的Eclipse中斷
- 11. 同時讀取子進程標準輸出和標準錯誤
- 12. 寫入輸出流3(標準輸出或標準錯誤)
- 13. 從標準輸出獲取輸出的系統命令C
- 14. 保存標準輸出,標準錯誤和標準輸出+標準錯誤同步
- 15. 從標準錯誤標準輸出上區分開管
- 16. 如何從標準輸出和標準錯誤
- 17. 從Jython控制標準輸出/標準錯誤
- 18. 從C#重定向原生dll標準輸出/標準錯誤#
- 19. 包括標準輸入輸出錯誤
- 20. 如何從C#讀取PowerShell腳本標準輸出和標準錯誤#
- 21. 在Perl中處理Java標準輸出和標準錯誤
- 22. 從cmd讀取輸出獲取錯誤
- 23. 獲取錯誤的輸出
- 24. Eclipse的標準輸出/錯誤同步
- 25. 從標準庫鏈接錯誤 - Visual Studio
- 26. 從標準輸出
- 27. 寫入標準輸出並從標準輸入讀取C
- 28. C++從標準輸入和標準輸出讀取
- 29. Java,Junit - 捕獲單元測試中使用的標準輸入/輸出
- 30. 從vbscript獲取錯誤輸出
謝謝,我不清楚這是Intellij的錯誤還是我錯過了一些東西。 – trev9065