测试框架中的 AspectJ
AspectJ inside a testing framework
我正在尝试应用一个横切关注点,它使用 AspectJ 进行日志记录,以及一个名为 Katalon 的测试框架,它使用 Groovy 和 Java。我发现这里最合适的编织类型是加载时编织,它需要一个 META-INF 文件夹和一个 Aop.xml。我试图将 aop.xml 放在多个位置,但我认为 aspectj 无法找到它。
这是我项目的结构:
这是我的 aop.xml 文件内容:
<aspectj>
<aspects>
<aspect name="com.fd.common.aspectName"/>
<weaver options="-verbose -showWeaveInfo">
<include within="com.myapp.common.*"/>
</weaver>
</aspects>
</aspectj>
这是我的观点:
@Aspect
public class test {
@org.aspectj.lang.annotation.Before("execution(* *.*(..))")
public void bef (JoinPoint jp) {
System.out.println(jp.getSignature());
System.out.println("Beforeeeeeeeeeeeeeeeeeeeee");
}
}
我的第一个猜测是,由于没有看到您的真实项目,您应该将编织器选项移出方面声明部分,如下所示:
<aspectj>
<aspects>
<aspect name="com.fd.common.aspectName"/>
</aspects>
<weaver options="-verbose -showWeaveInfo">
<include within="com.myapp.common.*"/>
</weaver>
</aspectj>
如果这没有帮助,我需要更多信息。我以前从未使用过 Katalon,所以我需要检查您的确切项目设置 - 当然不是您的完整原始项目,如果专有的话。但是请准备一个MCVE重现问题,发布在GitHub上,我可以帮你看看。我需要查看您如何调用 java 以及记录到控制台的内容。
更新: 有一个关于如何使用系统 属性 org.aspectj.weaver.loadtime.configuration
以指向替代资源的后续问题 URL 或文件系统路径名。我在 here 之前回答了同样的问题,并且刚刚更新了一些更详细的内容。
我正在尝试应用一个横切关注点,它使用 AspectJ 进行日志记录,以及一个名为 Katalon 的测试框架,它使用 Groovy 和 Java。我发现这里最合适的编织类型是加载时编织,它需要一个 META-INF 文件夹和一个 Aop.xml。我试图将 aop.xml 放在多个位置,但我认为 aspectj 无法找到它。 这是我项目的结构:
这是我的 aop.xml 文件内容:
<aspectj>
<aspects>
<aspect name="com.fd.common.aspectName"/>
<weaver options="-verbose -showWeaveInfo">
<include within="com.myapp.common.*"/>
</weaver>
</aspects>
</aspectj>
这是我的观点:
@Aspect
public class test {
@org.aspectj.lang.annotation.Before("execution(* *.*(..))")
public void bef (JoinPoint jp) {
System.out.println(jp.getSignature());
System.out.println("Beforeeeeeeeeeeeeeeeeeeeee");
}
}
我的第一个猜测是,由于没有看到您的真实项目,您应该将编织器选项移出方面声明部分,如下所示:
<aspectj>
<aspects>
<aspect name="com.fd.common.aspectName"/>
</aspects>
<weaver options="-verbose -showWeaveInfo">
<include within="com.myapp.common.*"/>
</weaver>
</aspectj>
如果这没有帮助,我需要更多信息。我以前从未使用过 Katalon,所以我需要检查您的确切项目设置 - 当然不是您的完整原始项目,如果专有的话。但是请准备一个MCVE重现问题,发布在GitHub上,我可以帮你看看。我需要查看您如何调用 java 以及记录到控制台的内容。
更新: 有一个关于如何使用系统 属性 org.aspectj.weaver.loadtime.configuration
以指向替代资源的后续问题 URL 或文件系统路径名。我在 here 之前回答了同样的问题,并且刚刚更新了一些更详细的内容。