问题标签 [kotlintest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
165 浏览

kotlin - KotlinTest jUnit 报告不包含 BehaviorSpec 步骤

将 KotlinTest 与 gradle 一起使用。尽管生成的报告不包含 BehaviorSpec 步骤,但在 Jenkins 管道中执行测试。这使我的报告无法使用。

有没有人遇到过类似的问题或知道生成更具描述性的报告的不同方法。

分级测试任务

管道后步骤

0 投票
0 回答
393 浏览

android - 在模块 junit-platform-commons-1.4.0.jar 和 kotlintest-core-3.3.0.jar 中发现重复的类 Testable

嗨,我是 Android 新手,我正在尝试进行一些测试。

但是当我尝试使用 kotlintest 时,出现以下错误:

这些是我在 gradle 中的依赖项:

知道我做错了什么吗?

谢谢

0 投票
1 回答
438 浏览

android - Gradle 失败:无法解决:删除 kotlintest 后的 io

我创建了一个新的 Android 项目并在仪器测试和单元测试中设置了 mock:

Gradle 同步很好。

如果我添加 kotlintest 并再次同步一切正常:

但是,如果我删除 kotlintest 并像添加 kotlintest 之前一样保留 gradle 文件,则会收到错误消息:

这是我最终的 Gradle 文件:

我尝试清理项目并清理 gradle。

知道为什么会这样吗?

谢谢

0 投票
1 回答
661 浏览

spring-boot - Kotlintest 中的 Autowire Spring TestEntityManager 不起作用

作为学习经验,我正在尝试将 Spring Boot 的 kotlin 教程 ( https://spring.io/guides/tutorials/spring-boot-kotlin/ ) 中描述的测试从使用 JUnit 5 移植到 KotlinTest。

在使用 注释的存储库测试中@DataJpaTest,我设法很好地自动装配我的 JPA 存储库。但是自动装配 Spring BootTestEntityManager不起作用,正如我java.lang.IllegalStateException: No transactional EntityManager found在测试中尝试使用它时所得到的那样。

除了@DataJpaTest,我尝试添加@Transactional,但没有运气。

使用 JUnit5 运行测试时,使用 entityManager 持久化实体可以正常工作。

但是使用 KotlinTest,它失败了:

错误是java.lang.IllegalStateException: No transactional EntityManager found.

我一直无法弄清楚如何在使用 KotlinTest 实现的测试中提供这个实体管理器。

0 投票
1 回答
180 浏览

intellij-idea - 排除重复的类测试

我正在通过 Intellij 运行测试,但有一个小问题。

我的代码看起来像这样,我认为不需要显示测试代码。

菜单栏控制器.kt

现在,如果我通过 Intellij 运行覆盖率的测试,我遇到了问题,我可以看到两个类......而不是一个......

在此处输入图像描述

发生这种情况是因为记录器自己创建了一个类,该类比 allo 覆盖率检查,这是我不想要的。

我可以以某种方式排除它吗?? 我正在使用gradle。

拒绝代码:

这条线是笑

我认为错误在 KotlinLogging 中: 在此处输入图像描述

0 投票
1 回答
879 浏览

spring-boot - 科特林测试;如何使用抽象测试容器类

我们有一个用 kotlin 编写的 Spring Boot 项目(第一次),我们想在其中尝试 kotlintest 来编写测试。

我们的数据源是一个 postgresql 数据库,在我们的测试中,我们使用org.testcontainers:postgresql是为了不使用像 h2 这样的单独数据源,或者必须在我们的实际数据库中使用测试模式。由于启动一个测试容器是一个有点冗长的操作,我们希望它在多个测试中只执行一次。

我们使用 liquibase 来改进数据库模式。

因此,考虑到这一点,我们创建了一个抽象类ContainerDatabaseTest,其他测试可以从中扩展:

这会启动一个测试容器,一次在测试运行期间扩展它的所有测试。

然后像这样使用 JUnit5

但是我怎样才能将这些测试重写为kotlintest?在 kotlintest 中,您也可以从 Spec (abstract class以及)扩展,而据我所知,在 kotlin 中,您不能从多个类扩展。

那么我将如何将此测试移植到kotlintest? 我考虑过beforeAllor afterAllin ProjectConfig,但我不想要或不需要所有测试的测试容器,只有那些需要数据源的测试容器。然后是参考文献TestListener中描述的概念,但我也很难重写。

任何指针?谢谢!

0 投票
1 回答
94 浏览

gradle - 如何使用 Kotlintest 和 Gradle 获得分层测试报告

我正在尝试使用 Gradle 从 Kotlintest 获取分层测试报告。我已经看到了一些允许它的屏幕截图,但是,我没有运气。对于任何类型的测试(FunSpec、WordSpec、BehaviorSpec 等),我总是只看到类名,然后是“叶子”测试。

  • 摇篮 5.6.2
  • Kotlintest 3.4.2
  • JUnit 平台 1.5.2

样本测试类

构建.gradle

智能结果

在此处输入图像描述

分级报告

在此处输入图像描述

我需要做什么才能context在报告中显示级别?

0 投票
1 回答
420 浏览

pitest - Pitest 没有运行 Kotlintest 测试

我在我的项目中使用 kotlintest,我想用 ptest 运行突变测试。

已经尝试单独使用pitest和junit5插件,但结果总是:

我在用着:

  • Pitest - 'info.solidsoft.gradle.pitest:gradle-pitest-plugin:1.4.5'
  • Pitest junit5 - 'org.pitest:pitest-junit5-plugin:0.9'
  • Koltintest - 'io.kotlintest:kotlintest-runner-junit5:3.4.2'

我知道 kotlintest 自 v3.3.0 起支持 ptest(根据此处),但我不知道如何使其工作。

任何想法如何使其正常运行?

谢谢!

0 投票
2 回答
975 浏览

gradle - Kotlintest 中的数据表测试 - 高级方法名称和测试用例的传播

我正在使用 Kotlintest 和数据表来测试使用 Kotlin、SpringBoot 和 Gradle 的应用程序,因为当表中有复杂数据时,语法比 ParameterizedJunitTests 更简洁。

有没有办法像JUnit 中的参数化测试一样使用方法标题中的参数名称?此外,我所有的测试执行都被列为一个测试,但我希望在每个数据表行的测试结果中都有一行。我在Documentation中都没有找到这两个主题。

为了让事情更清楚,举个 Kotlintest 的例子:

和 JUnit 的相应示例:

有 1/3 失败: Kotlintest: Kotlintest gradle 结果有 1/3 失败 Junit: Junit gradle 结果有 1/3 失败

使用数据表时是否有类似于@ParameterizedTest(name = "adding {0} and {1} should result in {2}")kotlintest 的内容?

0 投票
1 回答
354 浏览

testing - Kotlintest - 未解决的参考 shouldMatchJson

似乎我无法shouldMatchJson从 Kotlintest v3.4.2 访问匹配器,这种方式记录在https://github.com/kotlintest/kotlintest/blob/master/doc/matchers.md中。我得到未解决的参考,我似乎无法导入它。代码说它是 String 类的扩展方法,但尝试使用字符串甚至 """{}""" 但无法访问该方法。难道我做错了什么?所有其他匹配器都可以。

未解决的参考