Тесты AspectJ :: Surefire дают NoSuchMethodError - PullRequest
0 голосов
/ 18 марта 2011

Я занимаюсь компиляцией AspectJ во время компиляции на существующих классах, которая прекрасно работает в Eclipse (AJDT). Но когда я запускаю тестирование в maven с использованием surefire, тестовые случаи этого класса, где применяются аспекты, терпят неудачу. Я совершенно уверен, что переплетение происходит правильно, похоже, это проблема пути к классу. Ниже приведена ошибка при выполнении верного теста.

java.lang.NoSuchMethodError: com.online.station.OBSDescriptorBrokerageMortgageRemovalAspect.aspectOf () Lcom / online / station / OBSDescriptorBrokerageMortgageRemovalAspect; at com.online.station.delegate.fundstransfer.AuthorizeAccForTransfDelegImpl.unpackResponse (AuthorizeAccForTransfDelegImpl.java:111)

Ниже приведена конфигурация моего надёжного плагина в pom.xml

        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <forkMode>once</forkMode>
                <argLine>
                    -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                </argLine>
                <useSystemClassloader>true</useSystemClassloader>
                <includes>
                    <include>**/*Test.java</include>
                </includes>
                <excludes>
                    <exclude>**/WebTestCase.java</exclude>
                </excludes>
            </configuration>
        </plugin>

Я пробовал разные вещи, но это не сработало, любые предложения будут с благодарностью приняты!

Нужно ли иметь aop.xml, чтобы это работало? Ниже приведена информация о плагине aspectj.

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.3</version>
<configuration>
    <verbose>true</verbose>
    <complianceLevel>${jdk.source.version}</complianceLevel>
    <target>${jdk.target.version}</target>
    <showWeaveInfo>true</showWeaveInfo>
    <weaveMainSourceFolder>true</weaveMainSourceFolder>
    <includes>
        <!-- Class AspectClass1 and dependencies -->
        <include>**/AspectClass1*</include>
        <include>**/Class2*</include>
        <include>**/Class3*</include>
        <include>**/Class4*</include>
        <include>**/Class5*</include>
        <include>**/Class6*</include>
        <include>**/Class7*</include>
        <include>**/Class8*</include>

    </includes>
</configuration>
<executions>
    <execution>
    <goals>
        <goal>compile</goal>                <goal>test-compile</goal>       </goals>
    </execution>
   </executions>

Поскольку мне нужно только переплетение времени компиляции, я не настроил aop.xml.

Пожалуйста, помогите нам!

Спасибо !! Гириш

1 Ответ

1 голос
/ 18 марта 2011

Три предложения:

  1. Убедитесь, что ваш плагин aspectj для maven настроен правильно.Если у вас есть какие-либо вопросы по этому поводу, вставьте эту часть вашего pom.xml в ваш вопрос выше.
  2. Убедитесь, что ваш aop.xml ссылается на все необходимые аспекты.
  3. Убедитесь, чтоваш аспект-путь / вход-путь настроен правильно.
...