问题标签 [kotest]
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.
kotlin - 为什么标准迭代器比 Kotlin 中的序列快?
我是序列的新手,所以我可能(或多或少)做了一些非常错误的事情,但我有一个问题:
我写了两个函数:
和
现在我正在运行一个用 编写的测试kotest
,其中两个函数都接收Int.MAX_VALUE
为number
.
该功能的执行时间isPrimeNumber1()
约为 3.5 秒,而第二个功能的执行时间isPrimeNumber2()
约为 8.5 秒。
为什么呢?我错过了关于序列的东西吗?或者也许我的代码以正确但非常不理想的方式实现其目的?
unit-testing - Kotest 用 java.lang.IllegalArgumentException 打破 gradle 的 :test 任务:收到一个未知 ID 的测试失败事件
我开始使用 Kotlin 在 Kotlin 中进行单元测试。我使用以下与 Kotest 以某种方式集成的技术:
- Kotest 本身
- 科特林/JVM
- 摇篮
- 引诱
- 皮泰斯特
- IntelliJ IDEA 插件“Kotest”
在 gradle 中,我包含了以下依赖项:
io.kotest:kotest-runner-junit5:$kotest_version
: Kotest 框架io.kotest:kotest-assertions-core:$kotest_version
: Kotest 核心 JVM 断言io.kotest:kotest-property:$kotest_version
: Kotest 属性测试io.kotest:kotest-extensions-allure:$kotest_version
: Allure 的数据收集io.kotest:kotest-plugins-pitest:$kotest_version
: Pitest 插件
问题是,现在,当我通过 gradle:test
任务运行测试时,出现以下异常:
java.lang.IllegalArgumentException: Received a failure event for test with unknown id '2.27'. Registered test ids: '[2.1, :test, 2.25]'
每次测试运行的未知 id / 注册 id 都不同。实际上出现了很多错误,但那个是最后一个出现的错误。下面是完整的 gradle 输出(缩短的内部调用):
可能相关的内容:
1. 我在我的build.gradle.kts
我文件的以下部分build.gradle.kts
涵盖了所有与测试相关的内容,包括设置测试环境的任务和之后清理的第二个任务:
2.首先导致错误的测试套件
该错误发生在我在以下 Kotest 测试类中工作时,更准确地说,它发生在我尝试实现测试工厂并包含它之后:
所有JSONModelXX
类都是仅用于测试的模型数据类。JSONModelMarker
是所有JSONModelXX
类都实现的标记接口。JSONFile<T>
是我要测试的课程。
3. IntelliJ 通知
我总是从 IntelliJ 收到“所有测试成功”的通知,但是当我查看测试工具窗口时,测试被标记为“失败”,因为 gradle 任务:test
失败。我不知道这对这个问题有何影响。
4. 我有时也会收到不同的异常
如果我只通过 IntelliJ gutter 图标运行测试套件中的第一个测试,我会得到一个不同的异常:java.lang.ExceptionInInitializerError
. 我做了一些挖掘,发现Scanner
用于读取JSONFile<T>
类中 JSON 文件内容的那个会抛出一个NoSuchElementException
,因为(出于某种原因)该文件仅在执行此测试期间为空。 这很奇怪,因为我的自定义任务实际上在每个文件中写入了一些内容,而当我查看文件之后或运行时,这些内容实际上就在那里。这是完整的控制台输出::preTest
build.gradle.kts
:preTest
:test
现在我不知道这是问题的一部分还是单独的问题,但只是为了确定我想将它包括在这里。当我在 File->Settings->Build, Execution, Deployment->Build Tools->Gradle 中将测试运行器切换到 IntelliJ IDEA 时,也会出现同样的问题
而已!现在我的问题是:是什么导致了这个错误,我该如何解决?
与运行
- 科特林/JVM 1.4.10
- kotest-runner-junit5 4.3.1
- kotest 断言核心 4.3.1
- kotest 属性 4.3.1
- kotest-extensions-allure 4.3.1
- kotest-插件-pitest 4.3.1
- 毕业 6.7
- 魅力 2.13.6
- allure gradle 插件 2.8.1
- Pitest gradle 插件 1.5.1
- Intellij IDEA Ultimate 2020.2
- kotest IntelliJ 插件 1.1.20-IC-2020.2
- 开放JDK 11.0.2
android - 在 Android 项目中使用 AbstractProjectConfig
我正在尝试为 Kotest 设置全局项目配置。我已按照https://kotest.io/project_config/的说明进行操作
但是,我在下面有许多未解决的项目:
其中,在 import 语句中,core
未解决。
AbstractProjectConfig
未解决。
AssertionMode
未解决。
那么当然,assertionMode
“什么都不覆盖”
在我的应用程序级 build.gradle 中,我有
是否可以AbstractProjectConfig
在 Android 项目中使用?如果是这样,请问我哪里出错了?
android - 将 LiveDataTestUtil 与 Kotest 一起使用
我一直在阅读作为 Android 架构组件示例的一部分提供的 LiveDatatestUtil.kt,并且我一直在尝试尽可能地在 Kotest 中使用它来测试事件。主要是因为(现在)Kotest 不提供 LiveData 测试功能。是否有一种惯用的方法来测试事件(基于 LiveData),即基于已发布的实用程序?
kotlin-multiplatform - 在多平台模块上使用 kotest FreeSpec
我看起来没有带有 的本机模块io.kotest.core.spec.style.FreeSpec
,还是我遗漏了什么?
kotlin - 在 intellij 中使用 kotest 时“表达式未使用”
使用 Kotest 编写的这个 kotlin 测试,IntelliJ 显示警告“表达式未使用”并且语法着色不起作用。此外,在运行测试时,找不到测试。
kotest - 一遍又一遍地运行相同的kotest测试的简单方法?
使用 kotest 框架连续运行相同测试和相同套件或类 n 次的最简单方法是什么?
kotlin - Kotest - 生成无重复的详尽对象排列
我希望能够生成详尽的对象排列。想象以下对象
出于测试目的,我想限制name
to3
值。Mohammad
, Nasir
,Rasul
和age
值4
。10
, 20
, 30
, 40
. 我想生成 12 个对象,其中每个名称都有 4 个年龄。
我可以生成一个arbitrary
绑定,但是不能保证12
迭代每个都有一个唯一的对象。我必须增加迭代次数,并清除重复项。
查看源代码,我似乎找不到方法。我希望社区中有人对此有需求。
谢谢。
注意:我正在寻找一种使用Exhaustive
生成器的方法,而不是Arb
生成器。我可以进行一些后期处理并删除重复项,但我希望预先获得更可靠、独特的东西。
注意Rasul:40
是重复的。Mohammad:10
错过了。
根据@Tenfour04 的评论,一种可能的解决方案是使用times
and map
。尽管在我的领域中,映射变得多毛,因为我们将不得不处理Pairs
和处理。Pairs
Pairs
spring-boot - 如何使用 Kotlin 和 Kotest 正确地对 Spring Boot Reactive 应用程序进行单元测试
我对 Kotlin 和 Kotest 还很陌生,一直在摸索如何正确地对 webflux 应用程序进行单元测试。在这里查看kotest 示例,对我来说,这看起来像是在启动WebTestClient
服务器,更像是集成测试(如果我错了,请纠正我)。
我的应用程序相当简单,我有一个休息控制器,我正在使用构造函数注入来注入我的服务。
此服务用于WebClient
调用不同的外部服务,该服务返回一个Mono<MyResponse>
. 我的测试看起来像这样:
我得到的错误是: