- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用 Maven 3 运行 JUnit5 测试用例。
现在我想在 Testcase AppTest.java 中的 Java 导入中使用库 hamcrest:
import static org.junit.jupiter.api.Assertions.*;
import static org.hamcrest.Matchers.greaterThan;
import static org.hamcrest.Matchers.lessThan;
对于使用 App.java 的测试用例 AppTest.java:
double result;
result = app.probability_a_dash(23);
System.out.println("result: "+ result);
assertEquals(lessThan(0.5d), result);
导入时的错误是:
java.lang.NoClassDefFoundError: org/hamcrest/Matchers
如何将 hamcrest 库正确集成到 Maven 构建中:命令行上的 mvn 正确集成了 hamcrest,只有 IDE intelliJ IDEA 会混淆导入!
不幸的是,JUnit5 没有检测到 0.0 < 0.5
带 hamcrest lessThan
:我如何获得通过的测试用例?
我的pom.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<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.auticon.birthdays</groupId>
<artifactId>CalculateBirthdays</artifactId>
<version>1.0-SNAPSHOT</version>
<name>CalculateBirthdays</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>11</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<junit-platform.version>5.6.0</junit-platform.version>
</properties>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit-platform.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-platform.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>2.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.auticon.birthdays.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<argLine>
--illegal-access=permit
</argLine>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<filesets>
<fileset>
<directory>${basedir}</directory>
<includes>
<include>**/contacts.xml</include>
<include>**/contacts (1).xml</include>
<include>**/contacts (2).xml</include>
</includes>
<excludes>
<exclude>**/important.log</exclude>
<exclude>**/another-important.log</exclude>
</excludes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
最佳答案
我在运行我的 Maven 项目时遇到了同样的错误。因此,我必须使用 hancrest-all,这是一个独立的 hamcrest jar,其中包含单个 Artifact 中的所有子模块。
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
检查此链接:https://mvnrepository.com/artifact/org.hamcrest/hamcrest-all/1.3
关于java.lang.NoClassDefFoundError : org/hamcrest/Matchers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60014906/
尝试使用 spacy matcher 时出现错误: ~\Anaconda3\lib\site-packages\spacy\matcher\matcher.pyx in spacy.matcher.m
我想检查一个字符串是否包含另一个字符串,忽略大小写。基本上,我想这样做: assertThat(dialogTitle.getText(), containsString(equalToIgnorin
我想断言 ICollection 包含满足约束集合的项目。对于 Java Hamcrest,我会使用 Matchers.containsInAnyOrder(Matcher... matchers)。
如果我有一个 Matcher[A],如何创建一个只有当 Iterable 的每个元素都满足原始 Matcher 时才满足的 Matcher[Iterable[A]]。 class ExampleSpe
这将是一个简单的问题,但如果我的类路径中包含两个库,我找不到它们之间的区别以及使用哪一个? 最佳答案 Hamcrest 匹配器方法返回 Matcher和 Mockito 匹配器返回 T。因此,例如:o
给定一个序列 Seq[Matcher[A]]我要索取单Matcher[A]当序列中的所有匹配器都成功时,它就成功了。 编辑 我自己提供的答案似乎有点笨拙,此外,如果该序列的所有失败匹配器都产生结果,那
我看到了这个post 关于两者的区别: Matchers.hasItem(..) Assert.assertThat(items, Matchers.hasItem(Matchers.hasToStr
我对以下之间的区别有点困惑: Matcher m; m.group(); 和 Matcher m; m.pattern().pattern(); 它们都从列表中返回正确的匹配项,但我不明白两者之间的区
我正在使用 while(matcher.find()) 循环访问文件并从中检索内容。我想知道如果我知道我找到的内容的索引位于 matcher.start() 中,我将如何从这个循环中获取行号。 我很困
我试过这个例子,只是交换了两条线,它给出了不同的输出,为什么 String inputString = "username@gmail.com"; String pattern="([a-z]+@)(
以下代码在首次运行时给出异常。但是当我在匹配器行上设置断点并在 Netbeans Watcher 中评估一些命令时。有用。为什么?? String regex = "/I-TASSER/output/
是否有 Matcher.appendReplacement() 和 Matcher.appendTail() 的替代方案,它采用 StringBuilder 而不是 StringBuffer ? 是否
我需要在循环中“缩短”字符串,然后一次又一次地传递它以与 java.regex.Pattern 匹配。对于一些深入参与解析和文本处理的人来说,这可能是一个微不足道的情况。 我面临着必须使用的情况: s
为什么第一个 block 有效而第二个 block 不有效? int numberOfDigits = 2; Pattern p = Pattern.compile("[01]{"+numberOfD
我是 c# 的新手,正在尝试将以下代码转换为 c#,但在 c# 中找不到任何 api 来执行此操作。 请解释 matcher.start() 和 matcher.end() 的等价物。 c# 中 ma
我注意到调用 Matcher.lookingAt() 会影响 Matcher.find()。我在我的代码中运行了 lookingAt(),它返回了 true。然后,当我运行 find() 以便开始返回
我正在进行一些测试,以便重构一个旧的 C++ 项目。我正在尝试使用 gmock 匹配器 ElementsAreArray() 来匹配两个数组。 EXPECT_THAT(value_instance.v
我正在寻找一种方法来确定单个正则表达式是否匹配整个字符串、字符串的开头或 C# 中的一部分。 在 Java 中,您可以构造一个 Matcher 对象,并使用方法 matches() 来检查它是否与整个
给定一个 Collection 或 Iterable 项目,是否有任何 Matcher(或匹配器组合)可以断言每个项目都匹配一个匹配器? 例如,给定这个项目类型: public interface P
我看到有一些关于 Java Matcher 类的帖子,但我找不到关于特定方法 find() 和 group() 的帖子. 我有这段代码,其中 Lane 和 IllegalLaneException 已
我是一名优秀的程序员,十分优秀!