Конфигурирование проблемы AspectJ LTW с Tomcat и Spring

Ответ James Neville работает над 4,3. Однако я использовал AndroidX API, Espresso и Kotlin:

// scenario initialization is done in @Before setUp method, I did it here for brevity
val scenario = ActivityScenario.launch(MainActivity::class.java)

@Test fun test() {
    onView(withId(R.id.button_id)).perform(click())

    scenario.onActivity { activity ->
        val intent = shadowOf(activity).nextStartedActivity
        val shadowIntent = shadowOf(intent)

        assertEquals(SearchResultsActivity::class.java, shadowIntent.intentClass)
    }
}
7
задан skaffman 14 January 2011 в 17:03
поделиться

2 ответа

Да, я считаю, что вам нужен spring-agent.jar в качестве javaagent. Кроме того, я не знаю, так ли это, но является ли MethodTimer аспектом или это то, что вы пытаетесь пересечь? Если это аспект, то ему нужна аннотация @Aspect.

Вы также можете использовать свой собственный файл META-INF / aop.xml и указать

0
ответ дан 7 December 2019 в 10:05
поделиться

Оказалось, что это был плагин Eclipse, который я использовал для запуска Tomcat. Вся наша команда стала полагаться на него, никогда не запуская Tomcat из командной строки на наших локальных машинах. Он что-то делает с загрузчиком классов, который сломал LTW. Когда я наконец запустил Tomcat из командной строки, все заработало отлично. Для записи вам НЕ потребуется -javaagent: path / to / spring-agent.jar, если вы укажете TomcatInstrumentableClassLoader в server.xml.

6
ответ дан 7 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: