微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

测试框架内的 AspectJ

如何解决测试框架内的 AspectJ

我正在尝试应用一个横切关注点,它使用 AspectJ 和一个名为 Katalon 的测试框架进行日志记录,该框架使用 Groovy 和 Java。我发现这里最适合的编织类型是加载时编织,它需要一个 meta-inf 文件夹和一个 Aop.xml。我试图将我的 aop.xml 放在多个地方,但我认为 aspectj 无法找到它。 这是我的项目结构:

{{0}}

这是我的 aop.xml 文件内容

$ ./bin/artykul dat/captnjack.txt
This
is
a
tale
Of
Captain
Jack
Sparrow
A
Pirate
So
Brave
On
the
Seven
Seas.

这是我的方面:

<aspectj>
    <aspects>
        <aspect name="com.fd.common.aspectName"/>
        <weaver options="-verbose -showweaveInfo">
            <include within="com.myapp.common.*"/>
        </weaver>
    </aspects>
</aspectj>

解决方法

我的第一个猜测是,在没有看过您的真实项目的情况下,您应该将 weaver 选项移出方面声明部分,如下所示:

<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 之前回答了同样的问题,并且刚刚更新了更多细节。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。