TestNG работает нормально для меня, но бросает com.google.inject.internal.asm.util.TraceClassVisitor classnotfoundexception для другого инженера - PullRequest
0 голосов
/ 17 августа 2010

Мой скрипт ANT работает без проблем на моей машине с Linux и на некоторых виртуальных машинах xp. Когда другой инженер пытается запустить его локально, TestNG выбрасывает [testng] Причина: java.lang.ClassNotFoundException: com.google.inject.internal.asm.util.TraceClassVisitor не найден в (все мои библиотеки здесь)

Я никогда раньше не видел этот класс и не знаю, что вызывает это только на его машине. Я попытался импортировать asm-util-3.1.jar, но он не находит его, так как он выглядит в com.google.internal.asm.util, а не в org.objcetweb.asm.util.

Ответы [ 3 ]

1 голос
/ 10 августа 2011

Мы получили аналогичную ошибку при использовании плагина Eclipse TestNG:

testng java.lang.noclassdeffounderror: com/google/inject/internal/Lists

Похоже, что это может быть разница в версиях Guice, которые загружаются из classpath - Guice 2.0 имеет класс выше в то время как в Guice 3.0 он, похоже, перешел на:

com/google/inject/internal/util/Lists

Обновленная версия плагина TestNG Eclipse устранила проблему.

0 голосов
/ 19 августа 2010

Оказывается, что, хотя у него была установлена ​​правильная версия Java, на которую указала его среда, в глубине файла .conf Java была ссылка (JVM_ROOT) на старую версию 1.5.Спасибо за помощь, Седрик!

0 голосов
/ 18 августа 2010

Это похоже на проблему, связанную с Guice или Asm. Используете ли вы TestNG с Maven или файл jar, загруженный напрямую с http://testng.org?

Версия Maven содержит только классы TestNG и позволяет Maven загружать все остальные зависимости.

Файл jar содержит все зависимости, включая guice.jar, поэтому это может вызвать конфликт, если вы уже используете другую версию Guice в своей среде.

...