我正在编写一个用于自动生成单元测试用例的应用程序。该应用程序将 .java 文件作为输入,然后对其进行处理以查找其所有方法。然后使用以下命令使用测试数据调用这些方法。方法.invoke(classObj,MethodArg); 现在我希望找到在调用方法中执行的行来计算覆盖率。我曾尝试使用 StackTrace() 执行此操作,但它提供了我的应用程序代码的行号。谁能帮我这个。我完全迷失了。任何帮助将不胜感激。我目前的代码是:
Runnable myRunnable;
myRunnable = new Runnable(){
public void run(){
try {
int returnValInt = (int) fm.invoke(fobj, fargs);
System.out.println(new Exception().getStackTrace()[0].getLineNumber());
} catch (IllegalAccessException ex) {
Logger.getLogger(HelloWorldFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalArgumentException ex) {
Logger.getLogger(HelloWorldFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (InvocationTargetException ex) {
Logger.getLogger(HelloWorldFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
};
Thread th= new Thread(myRunnable, "th");
th.start();