Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 在IntelliJ中进行单元测试时,自动编织AspectJ失败_Maven_Intellij Idea_Junit_Aspectj - Fatal编程技术网

Maven 在IntelliJ中进行单元测试时,自动编织AspectJ失败

Maven 在IntelliJ中进行单元测试时,自动编织AspectJ失败,maven,intellij-idea,junit,aspectj,Maven,Intellij Idea,Junit,Aspectj,我们有一系列的单元测试,在我尝试添加依赖注入的一些方面和在rest端点中调用的方法的日志持续时间之前,它们都通过了 在测试失败之前的单元测试中,我们得到两个奇数错误: [AppClassLoader@14dad5dc] error aspect 'com.lutherconsulting.aphirm.log.DurationLoggingAspect' woven into 'com.lutherconsulting.aphirm.rest.ClientRest' must be define

我们有一系列的单元测试,在我尝试添加依赖注入的一些方面和在rest端点中调用的方法的日志持续时间之前,它们都通过了

在测试失败之前的单元测试中,我们得到两个奇数错误:

[AppClassLoader@14dad5dc] error aspect 'com.lutherconsulting.aphirm.log.DurationLoggingAspect' woven into 'com.lutherconsulting.aphirm.rest.ClientRest' must be defined to the weaver (placed on the aspectpath, or defined in an aop.xml file if using LTW).

我们使用aspectj maven插件只是让它将方面自动编织到web应用程序中。下面是我们针对Maven的pom.xml中的配置

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.8</version>
            <configuration>
                <showWeaveInfo>true</showWeaveInfo>
                <complianceLevel>1.8</complianceLevel>
                <source>1.8</source>
                <target>1.8</target>
                <Xlint>ignore</Xlint>
                <encoding>UTF-8</encoding>
                <verbose>true</verbose>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>test-compile</goal>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

据我所知,您正在使用IntelliJ自己的runner而不是maven运行测试,我非常感谢您对

的任何想法

因此,您已经通过aspectj maven插件将weaver配置为使用maven运行。问题是IntelliJ runner没有运行maven,因此其weaver插件也没有运行

我可以想出一个主意,您可以在IntelliJ中运行您的maven测试目标,以使用maven配置运行所有测试,因此它将检测aspectj maven插件并运行weaver。在这里,您可以检查如何运行maven目标:

另一方面,根据此链接,您必须在IntelliJ中启用加载时编织

引用链接说:

使用中的下拉列表打开“运行/调试配置”对话框 工具栏。单击“+”图标创建一个新配置并将其命名 e、 g.“测试”

对于这个项目,我选择了“All in package”并搜索测试 “在整个项目中”

现在您所要做的就是添加引入的VM启动参数 AspectJ LTW代理:

-javaagent:lib/aspectjweaver.jar

“:”后面的部分应该是指向aspectjweaver.jar副本的路径。在这种情况下,我复制了 aspectjweaver.jar从Spring发行版导入lib目录 我的项目(它不需要在项目的类路径上)。你 如果您愿意,也可以使用AspectJ 5最终版本中的jar

此外,您还可以检查以配置AspectJ方面,检查此链接以了解它

据我所知,您正在使用IntelliJ自己的runner而不是maven运行测试

因此,您已经通过aspectj maven插件将weaver配置为使用maven运行。问题是IntelliJ runner没有运行maven,因此其weaver插件也没有运行

我可以想出一个主意,您可以在IntelliJ中运行您的maven测试目标,以使用maven配置运行所有测试,因此它将检测aspectj maven插件并运行weaver。在这里,您可以检查如何运行maven目标:

另一方面,根据此链接,您必须在IntelliJ中启用加载时编织

引用链接说:

使用中的下拉列表打开“运行/调试配置”对话框 工具栏。单击“+”图标创建一个新配置并将其命名 e、 g.“测试”

对于这个项目,我选择了“All in package”并搜索测试 “在整个项目中”

现在您所要做的就是添加引入的VM启动参数 AspectJ LTW代理:

-javaagent:lib/aspectjweaver.jar

“:”后面的部分应该是指向aspectjweaver.jar副本的路径。在这种情况下,我复制了 aspectjweaver.jar从Spring发行版导入lib目录 我的项目(它不需要在项目的类路径上)。你 如果您愿意,也可以使用AspectJ 5最终版本中的jar

此外,您还可以检查以配置AspectJ方面,检查此链接以了解它

最后,解决这个问题的方法是进入IntelliJ中的项目结构,在AspectJ设置中有一个用于编译后编织模式的复选框。检查此项确保在执行测试之前在Intellij中发生编织。

最后,解决此问题的方法是进入Intellij中的项目结构,在AspectJ设置中有一个用于编译后编织模式的复选框。检查这一点可以确保在执行测试之前,Intellij中发生了编织。

我也一直在积极地搜索这条路径。我还没有找到如何配置intellij以使用maven配置运行所有测试。你知道怎么做吗?或者告诉我如何设置它的文档?@jspriggs我已经更新了答案,看看它。我也一直在积极地搜索这条路径。我还没有找到如何配置intellij以使用maven配置运行所有测试。你知道怎么做吗?或者告诉我如何设置它的文档?@jspriggs我已经更新了答案,看看它。对我来说,这很有效,我刚刚尝试过。也许您想重新导入Maven项目,或者只是在IDEA中打开Maven自动导入。不过我使用编译时编织。你用LTW吗?对我来说这很有效,我试过了。也许您想重新导入Maven项目,或者只是在IDEA中打开Maven自动导入。不过我使用编译时编织。你使用LTW吗?
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.8</version>
            <configuration>
                <showWeaveInfo>true</showWeaveInfo>
                <complianceLevel>1.8</complianceLevel>
                <source>1.8</source>
                <target>1.8</target>
                <Xlint>ignore</Xlint>
                <encoding>UTF-8</encoding>
                <verbose>true</verbose>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>test-compile</goal>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
- src
   | - main
      | - java
         | - packages
      | - resources
   | - test
      | - java
         | - packages
      | - resources
- pom.xml