当我尝试使用放心的框架执行脚本时出现错误。请指导我解决相同的问题。我用下面的罐子
Java版本-8 rest-assured-2.8.0 json-path-2.8.0 hamcrest-all-1.3 commons-lang3-3.0 json-schema-validator-2.2.0
失败:foo java.lang.NoClassDefFoundError:io / restassured / mapper / factory / GsonObjectMapperFactory at io.restassured.config.RestAssuredConfig。(RestAssuredConfig.java:41)at io.restassured.RestAssured。(RestAssured.java:420)在实践中.java的sun.reflect.NativeMethodAccessorImpl.invoke.getRequest.foo(GetRequest.java:12)in sun.reflect.DelegatingMethodAccessorImpl.invoke(未知方法)处sun.reflect.NativeMethodAccessorImpl.invoke(未知方法)java。 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108)位于org.testng.internal.Invoker.invokeMethod(Invoker.java:661)处的lang.reflect.Method.invoke(未知源)。内部的Internal.Invoker.invokeTestMethod(Invoker.java:869)。org上org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)的org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193)org的org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)位于org.testng.SuiteRunner.runTest(SuiteRunner.java:380)的org.testng.TestRunner.run(TestRunner.java:602)的org.testng.SuiteRunner.runTest(SuiteRunner.java:380)的org.testng.SuiteRunner的.testng.TestRunner.privateRun(TestRunner.java:744)在org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)在org.testng.SuiteRunner.run(SuiteRunner.java:289)在org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java)上运行(SuiteRunner.java:375) :52),位于org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)at org.testng.TestNG.runSuitesLocal(TestNG.java:1226)at org.testng.TestNG.runSuites(TestNG.java:1144)at org.testng.TestNG.run(TestNG.java:1115)at org。在org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)处的testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)在org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)引起:java.lang.ClassNotFoundException:io.restassured.mapper.factory.GsonObjectMapperFactory在java.net.URLClassLoader.findClass(未知源)在java.lang.ClassLoader.loadClass(未知源)在sun.misc.Launcher $ AppClassLoader.loadClass java.lang.ClassLoader.loadClass中的(未知源)(未知源)...更多281226)at org.testng.TestNG.runSuites(TestNG.java:1144)at org.testng.TestNG.run(TestNG.java:1115)at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)位于org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)由以下原因引起:java.lang.ClassNotFoundException:io.restassured.mapper.factory。 GsonObjectMapperFactory,位于java.net.URLClassLoader.findClass(未知源),位于java.lang.ClassLoader.loadClass(未知源),位于sun.misc.Launcher $ AppClassLoader.loadClass(未知源),位于java.lang.ClassLoader.loadClass(未知源) )...另外28个1226)at org.testng.TestNG.runSuites(TestNG.java:1144)at org.testng.TestNG.run(TestNG.java:1115)at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)位于org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)由以下原因引起:java.lang.ClassNotFoundException:io.restassured.mapper.factory。 GsonObjectMapperFactory,位于java.net.URLClassLoader.findClass(未知源),位于java.lang.ClassLoader.loadClass(未知源),位于sun.misc.Launcher $ AppClassLoader.loadClass(未知源),位于java.lang.ClassLoader.loadClass(未知源) )...另外28个1115)在org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)在org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)在org.testng.remote.RemoteTestNG.main(RemoteTestNG.java :76)由以下原因引起:java.lang.ClassNotFoundException:io.restassured.mapper.factory.GsonObjectMapperFactory在java.net.URLClassLoader.findClass(未知源)在java.lang.ClassLoader.loadClass(未知源)在sun.misc。 java.lang.ClassLoader.loadClass(未知源)的Launcher $ AppClassLoader.loadClass(未知源)...更多281115)在org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)在org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)在org.testng.remote.RemoteTestNG.main(RemoteTestNG.java :76)由以下原因引起:java.lang.ClassNotFoundException:io.restassured.mapper.factory.GsonObjectMapperFactory在java.net.URLClassLoader.findClass(未知源)在java.lang.ClassLoader.loadClass(未知源)在sun.misc。 java.lang.ClassLoader.loadClass(未知源)的Launcher $ AppClassLoader.loadClass(未知源)...更多2876)由以下原因引起:java.lang.ClassNotFoundException:io.restassured.mapper.factory.GsonObjectMapperFactory在java.net.URLClassLoader.findClass(Unknown Source)在java.lang.ClassLoader.loadClass(Unknown Source)在sun.misc.Launcher java.lang.ClassLoader.loadClass的$ AppClassLoader.loadClass(未知源)... 28更多76)由以下原因引起:java.lang.ClassNotFoundException:io.restassured.mapper.factory.GsonObjectMapperFactory在java.net.URLClassLoader.findClass(Unknown Source)在java.lang.ClassLoader.loadClass(Unknown Source)在sun.misc.Launcher java.lang.ClassLoader.loadClass的$ AppClassLoader.loadClass(未知源)... 28更多
===============================================
Default test
Tests run: 1, Failures: 1, Skips: 0
===============================================
===============================================
Default suite
Total tests run: 1, Failures: 1, Skips: 0
===============================================
Run Code Online (Sandbox Code Playgroud)
Jim*_*dan 18
造成此问题的根本原因是可以放心使用的*ObjectMapperFactory
软件包名称,例如在版本3.x
和之间更改4.x
。
对于任何人碰到这个即将到来的后释放其余保证的4.0.0,这个问题可能会出现在春季启动项目-引起的版本不匹配rest-assured
其传递dependencoes并json-path
与xml-path
在春季启动依赖性BOM。
如果指定依赖项io.rest-assured:rest-assured:4.0.0
,则还需要显式包含io.rest-assured:json-path:4.0.0
和io.rest-assured:xml-path:4.0.0
,否则spring-boot-dependencies将3.1.1
使用旧的* ObjectMapperFactory包名称引入版本。
小智 10
对于遇到此问题的任何人,我发现此 git 页面也很有帮助:https : //github.com/rest-assured/rest-assured/issues/1168
我的 maven POM 最终工作的一个例子是:
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>${io-rest-assured.version}</version>
<scope>test</scope>
</dependency>
<!--Added required depeendencies due to : https://github.com/rest-assured/rest-assured/issues/1168 -->
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured-common</artifactId>
<version>${io-rest-assured.version}</version>
</dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>json-path</artifactId>
<version>${io-rest-assured.version}</version>
</dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>xml-path</artifactId>
<version>${io-rest-assured.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
正如 Jim Riordan 所说,你必须明确包括io.rest-assured:json-path:4.0.0
和io.rest-assured:xml-path:4.0.0
我还需要在我的 Maven 依赖项中添加排除项io.rest-assured:spring-mock-mvc
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>spring-mock-mvc</artifactId>
<version>4.0.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<artifactId>rest-assured</artifactId>
<groupId>io.rest-assured</groupId>
</exclusion>
</exclusions>
</dependency>
Run Code Online (Sandbox Code Playgroud)
小智 0
在查看错误时,您需要显式地将 GSON 放入类路径或 POM 依赖项部分,因为它是 Rest Assured 的可选依赖项。
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7966 次 |
最近记录: |