- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 Rest Assured 和 TestNG 创建一个项目,但我遇到了 java.lang.NoClassDefFoundError: org/hamcrest/TypeSafeMatcher
的问题。对此相当陌生,因此感谢您的帮助。
我正在使用 Maven:
<dependencies>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>3.0.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>json-schema-validator</artifactId>
<version>3.0.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
<scope>test</scope>
</dependency>
</dependencies>
堆栈跟踪:
java.lang.NoClassDefFoundError: org/hamcrest/TypeSafeMatcher
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at Tests.GameTests.GameTest.testGameSchema(GameTest.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1123)
at org.testng.TestNG.run(TestNG.java:1031)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:127)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.TypeSafeMatcher
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 41 more
package Tests.GameTests;
import Tests.TestModel;
import com.github.fge.jsonschema.cfg.ValidationConfiguration;
import com.github.fge.jsonschema.main.JsonSchemaFactory;
import org.testng.annotations.Test;
import static com.github.fge.jsonschema.SchemaVersion.DRAFTV4;
import static io.restassured.RestAssured.when;
import static io.restassured.module.jsv.JsonSchemaValidator.matchesJsonSchemaInClasspath;
public class GameTest extends TestModel {
@Test
public void testGameSchema() {
JsonSchemaFactory jsonSchemaFactory = JsonSchemaFactory.newBuilder().
setValidationConfiguration(ValidationConfiguration.
newBuilder().
setDefaultVersion(DRAFTV4).freeze()).freeze();
when().
get("/games/114").
then().
assertThat().
body(matchesJsonSchemaInClasspath("game_schema.json").
using(jsonSchemaFactory));
}
}
最佳答案
您可以在您的 pom 中显式添加 hamcrest 依赖项。
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
</dependency>
我曾多次遇到与 hamcrest 类似的问题,明确添加它总是有帮助。
关于java - 找不到类 org/hamcrest/TypeSafeMatcher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44035029/
我有两个Collection我需要使用 hamcrest 进行比较: public class Dumb { private String id; //setters & getter
Hamcrest 提供了许多匹配器来断言集合的内容。所有这些情况都通过: Collection c = ImmutableList.of("one", "two", "three"); assertT
Hamcrest 存储库包括 org.hamcrest.io.FileMatchers(参见 https://github.com/hamcrest/JavaHamcrest/tree/master/
方法 org.hamcrest.CoreMatchers.is() 已弃用。 doc说要改用 - org.hamcrest.CoreMatchers.isA()。 但是 isA() 似乎一起服务于
看起来 hamcrest org.hamcrest.Matchers 类与 org.hamcrest.CoreMatchers 非常相似(尽管它看起来像 Matchers有更多的)。为什么我会选择使用
我正在开发一个 Eclipse 4 RCP 项目,其中包含一个插件包和一个用于单元测试的包片段。目标平台是使用 Eclipse 目标定义(.target 文件)来定义的。 Maven 与 Tycho
安卓工作室 3.6 应用程序/build.gradle: androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidT
安装Android Studio并启动一个简单项目后。我从另一台计算机复制了sdk和gradle文件夹时出现" Error:Could not download hamcrest-core.jar (
您好,我是新手,请放心并尝试在 BDD 中执行此操作,为此,我在尝试运行时编写了一个脚本,出现了下面提到的错误 [ERROR] COMPILATION ERROR : [INFO] ---------
我正在尝试编写一个自定义匹配器,该匹配器深入对象图以检查重要属性。 assertThat( writeRequest, hasRole("admin") ); 当这失败时,我希望看到如下消息: Exp
我最近试图在其中一项测试中断言不平等。但是我无法在hamcrest中找到合适的匹配器。 我理想地想要做的是类似的事情。 assertThat(2 , isNot(3)); 有什么办法吗? 最佳答案 你
在我们的一个项目中,我偶然发现了以下代码行(它使用 hamcrest 匹配器 1.3): assertThat(someReport.getSomeException(), Matchers.notN
rules=[{type:"path", value:"abc"},{type:"cookie", value:"xyz"}, ...] 我想查找数组是否包含具有属性(type=path 和value
我想要一个简单的 hamcrest 匹配器来查找 List 中对象的重复项。这是我写的 for (QuizEntity quiz : quizzes) for (Questio
我有两个 Collection 集合: Collection pendingAudits; Collection olderAudits; 所以,我需要比较 pendingAudits 中的所有 ol
有没有办法在不扩展库的情况下使用 Hamcrest 测试预期值是否为数字? 我在想这样的事情: assertThat(expectedValue).isNumber(); 此外,值得一提的是,
虽然英语不是我的母语,但我仍然认为来自 Hamcrest 的以下错误消息是错误的。 我有以下验证方法: private void validateReturnedCode() { List e
rules=[{type:"path", value:"abc"},{type:"cookie", value:"xyz"}, ...] 我想查找数组是否包含具有属性(type=path 和value
我正在尝试构建 https://github.com/jenkinsci/jira-trigger-plugin并且在与时间/日期相关的测试中失败: expect commentEvent.issue
我可能在这里遗漏了一些非常明显的东西,当我看到它时,我会打自己的耳光。 我正在尝试使用 Hamcrest 测试返回 Enum 的方法的输出: @Test public void testGetBuil
我是一名优秀的程序员,十分优秀!