我有兩個測試非常類似功能的java測試用例。有了IntelliJ的覆蓋率報告,有可能兩個看到每個測試的源代碼覆蓋率。Intelij比較兩個覆蓋率數據
現在我想看看兩個測試之間的區別。例如
void foo(a) {
if (a>4) { print("hu"); }}
測試用例1:
foo(1);
測試用例2:
foo(5);
現在我想的IntelliJ告訴我, '打印( 「胡」)' 只能由testcase1調用。我如何實現這一目標?
我有兩個測試非常類似功能的java測試用例。有了IntelliJ的覆蓋率報告,有可能兩個看到每個測試的源代碼覆蓋率。Intelij比較兩個覆蓋率數據
現在我想看看兩個測試之間的區別。例如
void foo(a) {
if (a>4) { print("hu"); }}
測試用例1:
foo(1);
測試用例2:
foo(5);
現在我想的IntelliJ告訴我, '打印( 「胡」)' 只能由testcase1調用。我如何實現這一目標?
您可以找到方法
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
這StackTraceElement
有getClassName()
的來電者,並getMethodName()
巫婆幫助你找到主叫方。
例:
public class A {
public void foo(int a) {
if (a > 4) {
System.out.println("hu");
StackTraceElement[] stackTraceElements = Thread.currentThread()
.getStackTrace();
System.out.println(stackTraceElements[2].getMethodName());
}
}
。
class Result {
public static void main(String[] args) {
methodA();
}
public static void methodA(){
new A().foo(5);
}
public static void methodB(){
new A().foo(2);
}
}
}
輸出地說:
hu
methodA
手動解決方法是這樣的:導出覆蓋率結果HTML和比較在瀏覽器中每一步一步包。 – EhmKah