Intellij比较两个覆盖数据

时间:2014-01-13 12:43:53

标签: java testing intellij-idea code-coverage

我有两个测试非常相似功能的java测试用例。使用IntelliJ的覆盖率报告,可以看到每个测试的源代码覆盖率。

现在我想看看两个测试之间的区别。实施例

void foo(a) {
if (a>4) { print("hu"); }}

测试用例1:

  foo(1);

测试用例2:

  foo(5);

现在我希望IntelliJ告诉我'print(“hu”)'仅由testcase1调用。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以找到方法的来电者

StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();

StackTraceElementgetClassName(),而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);
 }
 }
}

Out put:

 hu
 methodA