Java 在没有XML的情况下以编程方式运行testng会抛出NoSuchMethodError XmlPackage
我正在尝试运行testng并获得下面的异常 TestngManager.java pom.xml 错误: 严重:路径为[/SERVER\u PING]的上下文中Servlet[automation.Report]的Servlet.service引发了带有根本原因的异常[Servlet执行引发了异常] java.lang.NoSuchMethodError:org.testng.xml.XmlPackage.Ljava/lang/String;v 在com.mycopmany.myproduct.test.utils.TestngManager.runTestngManager.java:27 位于automation.Report.doGetReport.java:35 位于javax.servlet.http.HttpServlet.serviceHttpServlet.java:622 位于javax.servlet.http.HttpServlet.serviceHttpServlet.java:729 位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilterApplicationFilterChain.java:292 位于org.apache.catalina.core.ApplicationFilterChain.doFilterApplicationFilterChain.java:207 位于org.apache.tomcat.websocket.server.WsFilter.doFilterWsFilter.java:52 位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilterApplicationFilterChain.java:240 位于org.apache.catalina.core.ApplicationFilterChain.doFilterApplicationFilterChain.java:207 位于org.apache.catalina.core.StandardWrapperValve.invokeStandardWrapperValve.java:212 位于org.apache.catalina.core.StandardContextValve.invokeStandardContextValve.java:106 位于org.apache.catalina.authenticator.AuthenticatorBase.invokeAuthenticatorBase.java:502 位于org.apache.catalina.core.StandardHostValve.invokeStandardHostValve.java:141 在org.apache.catalina.valves.ErrorReportValve.InvokeerErrorReportValve.java:79 位于org.apache.catalina.valves.AbstractAccessLogValve.invokeAbstractAccessLogValve.java:616 位于org.apache.catalina.core.StandardEngineValve.invokeStandardenginievalve.java:88 在org.apache.catalina.connector.CoyoteAdapter.serviceCoyoteAdapter.java:509 位于org.apache.coyote.http11.AbstractHttp11Processor.processAbstractHttp11Processor.java:1104 位于org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.processAbstractProtocol.java:684 位于org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRunNioEndpoint.java:1520 位于org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.runNioEndpoint.java:1476 位于java.util.concurrent.ThreadPoolExecutor.runWorkerThreadPoolExecutor.java:1142 位于java.util.concurrent.ThreadPoolExecutor$Worker.runThreadPoolExecutor.java:617 位于org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.runTaskThread.java:61 java:745Java 在没有XML的情况下以编程方式运行testng会抛出NoSuchMethodError XmlPackage,java,testng,pom.xml,nosuchmethoderror,Java,Testng,Pom.xml,Nosuchmethoderror,我正在尝试运行testng并获得下面的异常 TestngManager.java pom.xml 错误: 严重:路径为[/SERVER\u PING]的上下文中Servlet[automation.Report]的Servlet.service引发了带有根本原因的异常[Servlet执行引发了异常] java.lang.NoSuchMethodError:org.testng.xml.XmlPackage.Ljava/lang/String;v 在com.mycopmany.myproduc
问题似乎是由依赖性冲突引起的,即依赖性assertj swing testng版本2.1.1依赖于testng版本5.7,Maven不会自动将其识别为与版本6.14.3的依赖性冲突 如果可能,我建议将pom.xml中的assertj swing testng版本更新为新版本,例如,您可以使用3.8.0版本:
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-swing-testng</artifactId>
<version>3.8.0</version>
</dependency>
另一种选择是排除嵌套的testng依赖项,但这仅对较小的版本差异是安全的,因为任何版本不兼容都可能导致依赖项中断
如何定位这类问题。在Eclipse IDE中查看pom.xml时,会有一个选项卡依赖关系层次结构,它显示嵌套依赖关系的树视图,并能够对它们进行筛选。哪一行引发此异常?packages.addnew XmlPackage.*;您是否尝试过像com.something.tests这样的完全限定包名?但是,您的版本不应该抛出异常。奇怪,不管我写什么,都会出现同样的错误,我试着写正确的包名,不正确的包名,空字符串和nullHrmm,这是我所期望的。您使用的是什么版本的testng?我在pom.xml文件中没有看到这一点。它是saip自动化的可传递依赖项吗?也许可以尝试使用最新版本的testng?
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycopmany.myproduct.tests</groupId>
<artifactId>myproduct-automation</artifactId>
<version>0.0.1</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>[6.1.1,)</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>[2.44.0,)</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-swing-testng</artifactId>
<version>2.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-io -->
<!-- <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>-->
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>2.2.1</version>
</dependency>
<!-- <dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-kernel</artifactId>
<version>2.2.0</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-io</artifactId>
<version>2.2.0</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
-->
</dependencies>
</project>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-swing-testng</artifactId>
<version>3.8.0</version>
</dependency>