Как запустить мои тесты Java с плагином AspectJ maven - PullRequest
0 голосов
/ 10 июня 2018

Я хочу записывать свои тесты через АОП.У меня есть класс AspectLogger, где я определил pointcut и советы.Когда я запускаю aspectj: test-compile, в выводе я вижу, что советы были добавлены в тесты.Например,

[INFO] Join point 'method-execution(void Back_end_task.APITest.test())' in Type 'Back_end_task.APITest' (APITest.java:22) advised by before advice from 'AspectLogger' (AspectLogger.java:26)

Но когда я запускаю mvn clean test в выводе, я вижу такие ошибки:

java.lang.NoSuchMethodError: AspectLogger.aspectOf()LAspectLogger;
    at Back_end_task.APITest.test(APITest.java:23)

При поиске этой проблемы я обнаружил, что должен добавить свой проект какзависимость к <aspectLibraries> блоку aspectj-maven-plugin и добавление зависимости моего проекта к <dependencies> блоку pom.xml.Но проблема в этом:

[FATAL] 'dependencies.dependency MyTraining:project:1.0-SNAPSHOT' for MyTraining:project:1.0-SNAPSHOT is referencing itself

Это ссылка на мой проект

Пожалуйста, дайте мне совет.Что я пропустил?Что я не так делаю?Я хочу научиться использовать аспекты.

1 Ответ

0 голосов
/ 16 июня 2018

Проблема в вашей сборке заключается в том, что вы используете ткачество во время компиляции, а затем запускаете тесты с ткацким агентом во время загрузки.Последнее не обязательно. Этот коммит исправляет вашу сборку:

--- pom.xml (revision 8aa7b98f5c6c15676580783c2f351c253212fbee)
+++ pom.xml (revision 72f37c4377b7189578f6afd5c45473efd8c63bc4)
@@ -89,12 +89,6 @@
             <version>${aspectj.version}</version>
         </dependency>

-        <dependency>
-            <groupId>org.aspectj</groupId>
-            <artifactId>aspectjweaver</artifactId>
-            <version>${aspectj.version}</version>
-        </dependency>
-
         <!--<dependency>
             <groupId>MyTraining</groupId>
             <artifactId>project</artifactId>
@@ -156,9 +150,6 @@
                 <artifactId>maven-surefire-plugin</artifactId>
                 <version>2.20</version>
                 <configuration>
-                    <argLine>
-                        -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
-                    </argLine>
                     <systemProperties>
                         <property>
                             <name>allure.results.directory</name>
@@ -166,13 +157,6 @@
                         </property>
                     </systemProperties>
                 </configuration>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.aspectj</groupId>
-                        <artifactId>aspectjweaver</artifactId>
-                        <version>${aspectj.version}</version>
-                    </dependency>
-                </dependencies>
             </plugin>

             <plugin>

Я также улучшил некоторые мелочи в вашем POM в моей вилке GitHub и создал запрос на извлечение для вас.Просто примите это, если хотите.

...