У меня есть многомодульный проект maven, состоящий из 3 модулей:
- framework (без папки src / tests) в pom. xml без зависимостей
- объекты страницы (без папки src / tests) pom. xml содержит зависимость от модуля фреймворка
- tests (без папки src / main) pom. xml содержит зависимость от модуля фреймворка и модуля объектов страницы
Все классы тестов и testng. xml suite находятся в модуле tests .
Когда я пытаюсь запустить один тест или набор тестов в Intelij (или с mvn clean test -DsuiteXmlFile = XXX), я получаю следующую ошибку
java.lang.NoClassDefFoundError: org/testng/IInvokedMethodListener2
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:398)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1209)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1220)
at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1264)
at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1299)
at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1384)
at org.testng.TestNG.addServiceLoaderListeners(TestNG.java:961)
at org.testng.TestNG.initializeConfiguration(TestNG.java:898)
at org.testng.TestNG.initializeEverything(TestNG.java:988)
at org.testng.TestNG.run(TestNG.java:999)
at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
at om.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:110)
Caused by: java.lang.ClassNotFoundException: org.testng.IInvokedMethodListener2
Я искал и обнаружил, что создание конфигураций запуска может помочь, поэтому я создал run Конфигурация и выбрал «В одном модуле» радио и мой тестовый модуль, но это не помогло.
В чем причина этой ошибки?