簡體   English   中英

如何檢查Junit是否與JunitRunner或PowermockRunner一起運行

[英]How to check whether Junit is running with JunitRunner or PowermockRunner

在向類編寫junit的過程中,我遇到了一些要求,例如使用不同的運行器執行測試,例如使用JUnitRunner然后使用PowermockRunner進行測試,因此我想以此為基礎來決定是跳過測試還是繼續。 請您讓我知道有什么辦法可以檢查嗎?

提前致謝。

有幾種選擇,但是沒有一個是漂亮的。

最好的選擇是這些運行程序中的任何一個都支持您可以查詢的系統屬性,但我對此表示懷疑。

失敗的話,您可以進行類查找或檢查堆棧。

  1. 類查找

     boolean isPowerMock = false; try{ Class.forName("fully.qualified.name.of.PowerMockRunner"); isPowerMock = true; }catch(ClassNotFoundException e){} 

請注意,如果PowerMock位於類路徑上,但未使用運行器,則此技術可能返回假肯定。

  1. 檢查堆棧

     boolean isPowerMockRunner = false; for (StackTraceElement stackTraceElement : Thread.currentThread().getStackTrace()) { if(stackTraceElement.getClassName().contains("PowerMockRunner")) { isPowerMockRunner = true; break; } } 

或者,Java 8樣式:

boolean isPowerMock = Arrays.stream(
                                Thread.currentThread()
                                      .getStackTrace()
                             )
                            .anyMatch(
                                elem -> elem.getClassName()
                                            .contains("PowerMockRunner")
                             );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM