JVM流行的JUnit测试框架的第5版。 JUnit是一个用于编写可重复测试的框架。它是单元测试框架的xUnit体系结构的一个实例。
Junit5 带注释的函数未使用 Ktor 和 Gardle 执行
我正在使用 Ktor 2.3.3、Kotlin 1.9.10 和 Junit 5.10.0 以及 java 版本“20.0.2”2023-07-18 我正在尝试启动服务器,然后对其执行一系列测试。这是我的测试...
代码如下所示。我希望它去测试 keyNames 的所有元素。 但是,如果任何测试失败,它就会停止,并且不会迭代所有数组元素。 我的理解是,在assertAll all
我正在将单元测试从 Junit4 迁移到 Junit5。在测试中,我使用 Junit4 API 中的 TemporaryFolder 规则。为了保持测试正常工作,我添加了 @EnableRuleMigrationSupport 注释: @
从一个月前开始,我终于抽出时间升级Selenide版本,并对测试录制的新功能产生了兴趣。 我想在我的代码之一中实现它: 硒化物-JUnit5-
我在设置正确的测试生态系统时遇到问题。我正在关注其他项目,尽管他们使用 Gradle,这应该不会产生重大影响。 当我尝试我们时,问题就出现了...
Maven Surefire 测试失败:不支持的类文件主要版本 61
我正在尝试使用 Maven 在 IntelliJ 中创建一个项目,但是当运行 mvn install 或 mvn test 以运行我编写的简单 JUnit 测试时,它失败并出现以下错误: 执行失败...
我正在为我的 Spring Boot 服务编写测试。我使用 Wiremock 来模拟 HTTP 请求。我需要暂时禁用 WireMock 服务器以进行一项特定测试,以模拟
未找到测试 - 在裸机 Spring Boot Maven 项目上运行 jUnit 5 测试用例时出现空测试套件
所以我们收到了消息 进程已完成,退出代码为 0 空测试套件。 当尝试在我们的多模块项目上运行 Junit5 测试用例时,为了测试问题的根源,我决定......
有没有办法让特定类的测试按顺序运行[JUnit5]?我在构建项目时使用了 Sure-fire 插件,并且对某些类的测试失败了,而当我运行时......
使用 Maven 在 CLI 中运行单个 Cucumber 功能文件会导致“测试运行:0”
我的项目是使用Eclipse构建的。如果我从那里甚至 CLI 运行 Maven 测试,我会得到结果 Tests run: 15。 如果我尝试使用命令运行单个黄瓜功能文件 mvn 测试 -Dsu...
Flowable 7.1.0 测试运行时找不到 flowable.cfg.xml
我已经构建了一个可流动的7.1.0 groovy springboot gradle项目,当我手动运行时它可以工作。 但是我将测试过程复制到测试/资源/过程中并构建了一个简单的测试,注释了我的...
我有一个参数化的junit集成测试。它有 30 个输入(给它运行 30 个测试),每个输入需要 18 秒。 我想并行运行它们。 我从 gradle 运行它们,它们是
版本: jdk1.8.0 斯卡拉:2.11 5.2.0 1.2.0 版本: jdk1.8.0 斯卡拉:2.11 <properties> <junit.jupiter.version>5.2.0</junit.jupiter.version> <junit.platform.version>1.2.0</junit.platform.version> </properties> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <version>1.9.5</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.jupiter.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.jupiter.version}</version> <scope>test</scope> </dependency> 我正在关注这个问题,它展示了如何在java中使用junit 5断言异常。 当我尝试在 scala 中做同样的事情时: val closureContainingCodeToTest = () -> myClass.myMethod(data) // or val closureContainingCodeToTest = () => myClass.myMethod(data) assertThrows(classOf[MyException], closureContainingCodeToTest) 我收到此错误: Error:(89, 48) type mismatch; found : () => Unit required: org.junit.jupiter.api.function.Executable assertThrows(classOf[MyException], closureContainingCodeToTest) 这可能是一个非常简单的问题,但我找不到如何在 Scala 中创建 Java Executable 对象的 Scala 闭包。 编辑: 添加一个简单的完整测试: package com.my.lib import org.junit.jupiter.api.Assertions.assertThrows import org.junit.jupiter.api.Test import org.junit.jupiter.api.function.Executable class myTest { @Test def myTest = { val closureContainingCodeToTest:Executable = () => throw new RuntimeException() assertThrows(classOf[RuntimeException], closureContainingCodeToTest) } } 我收到以下错误: Error:(11, 53) type mismatch; found : () => Nothing required: org.junit.jupiter.api.function.Executable val closureContainingCodeToTest:Executable = () => throw new RuntimeException() 您可以通过明确闭包的返回类型,将函数类型 () => myClass.myMethod(data) 强制转换为 Executable,即。添加Executable import org.junit.jupiter.api.Assertions.assertThrows import org.junit.jupiter.api.Test import org.junit.jupiter.api.function.Executable class MyClassTests { val closureContainingCodeToTest: Executable = () => (new MyClass).myMethod(data) @Test def throwsExceptionWhenCalled(): Unit = { assertThrows(classOf[MyException], closureContainingCodeToTest) } } 或者,如果你内联它,那么你甚至不需要明确。 import org.junit.jupiter.api.Assertions.assertThrows import org.junit.jupiter.api.Test class MyClassTests { @Test def throwsExceptionWhenCalled(): Unit = { assertThrows(classOf[MyException], () => (new MyClass).myMethod(data)) } } 另请注意,您的测试方法需要返回 Unit 否则它们将永远不会运行。 如果我们想以 Junit 5 风格进行操作 - 你可以像下面的代码一样: import org.junit.jupiter.api.{DisplayName, Test} import org.junit.runner.RunWith import org.scalatest.junit.{JUnitRunner, JUnitSuite} @RunWith(classOf[JUnitRunner]) class Junit_5_Test extends JUnitSuite{ object ExceptionTest { @throws(classOf[RuntimeException]) def throwRunEx = throw new RuntimeException } @Test @DisplayName("Example with JUnitSuite") def throwsExceptionWhenCalled_With_JUnitSuite() { import ExceptionTest._ assertThrows[RuntimeException]{ throwRunEx} } } 要这样做 - 您需要将其包含在您的build.sbt中: "org.junit.jupiter" % "junit-jupiter-api" % "5.2.0" % Test, "org.scalatest" %% "scalatest" % "3.2.0-SNAP10" % Test 为了构建之前的答案,我想编写多行测试代码,而不仅仅是调用 MyClass.myMethod(data) import org.junit.jupiter.api.Assertions.assertThrows import org.junit.jupiter.api.Test import org.junit.jupiter.api.function.Executable class MyClassTest { @Test def throwsExceptionWhenCalled(): Unit = { assertThrows(classOf[MyException], new Executable { override def execute(): Unit = { val data = generateBadData() new MyClass().myMethod(data) // throws MyException } }) } } 您也可以使用intercept。来自 Scala 文档(针对 Scala 2): import java.nio.file.NoSuchFileException class FileTests extends munit.FunSuite { test("read missing file") { val missingFile = os.pwd / "missing.txt" intercept[NoSuchFileException] { os.read(missingFile) } } } intercept 返回异常,因此如果您想测试它是否包含预期文本,您可以从中获取消息。
无法在使用 @ExtendWith(SpringExtension.class) 运行的 Spring Boot 单元测试中注入应用程序上下文
我正在尝试为使用 Spring boot 编写的 SOAP 端点编写单元测试。最初我使用 @RunWith(SpringJUnit4ClassRunner.class) 编写测试,所有测试均成功执行。然而...
运行具有重复步骤定义的不同 Junit5 Cucumber 测试套件
我有两个特定领域的junit5平台黄瓜测试套件。 一个: @套房 @IncludeEngines(“黄瓜”) @SelectPackages(“de.bla.blubb1”) @SelectClasspathResource("de/bla/blu...
我正在尝试使用5.11版本中引入的@MethodSources。 Java文档 类 MapFieldsTest { 静态流 testGetIntCommon() { 返回 Stream.of( 争论...
使用 ValueSource 添加 JUnit ParameterizedTest 后 IntelliJ 中出现意外的测试计数
我有一个 JUnit 测试,其中包括 @BeforeEach 和 @AfterEach 方法,最初设置为测试单个端点。它运行良好,并且 IntelliJ 正确显示 Test Passed: 1 of 1 test。 现在,我需要...
我有两个特定领域的黄瓜套件,例如 A: @套房 @IncludeEngines(“黄瓜”) @SelectPackages(“de.bla.blubb1”) @SelectClasspathResource(“de/bla/blubb1”) @
我用 JUnit 5 编写了一个单元测试,用于测试一些文件系统逻辑,我需要一个文件夹和一些文件。我在文档中找到了 TempDir 注释,并使用它创建了一个文件夹,进入
许多公司遵循的做法之一是重复不稳定测试,直到通过 x 次(连续或总共)。如果执行n次并且失败至少x次,则标记为fai...