Maven 测试用例没有调用 AspectJ Aspects

问题描述

添加了 Junit 测试用例来调用带有 Annotation 的方法,而 Annotation 又具有 around 方面。当我运行 mvn test 命令时,由于某种原因没有调用 Aspect。

但是当我使用 mvn package 构建 jar 并运行该 jar 时,会调用 Aspects。

这是代码 - https://github.com/chandru-kumar/aop-example

有人可以帮忙吗?如何为 mvn test 调用方面?

解决方法

如果您针对应用程序类(已由 AspectJ 编译器编译)进行测试,那么您的测试将起作用。但是您正在尝试针对测试类测试方面。这也是可能的,但在这种情况下,您需要告诉 AspectJ Maven 实际上也负责编译测试类:

<execution>
  <goals>
    <goal>test-compile</goal>
    <goal>compile</goal>
  </goals>
</execution>

P.S.:感谢您提供 MCVE。大多数 StackOverflow 新手都忘记了这一点。它帮助我轻松识别问题,在这种情况下,甚至无需克隆存储库。但有时并不是那么简单,那么我需要编译并运行示例程序。无论如何,保持良好的做法! ?