问题标签 [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 - Kotest 设置问题,“未解决的参考”
我正在尝试将 kotest 添加到我的库中,但我只是得到:
我一定是在 build.gradle.kts 的某个地方搞砸了,有些东西没有加载或 useJUnitPlatform() 没有运行,但我不确定在哪里。谁能发现我哪里出错了?
src/test/kotlin/io/bmb/ttnt/lib/SqliteManagerTest.kt
build.gradle.kts:
更新:
如果我使用:
虽然 io.kotest 是我在 build.gradle.kts 文件中使用的?
kotest - 如何在 Kotest 的另一台发电机中使用一台发电机的输出?
使用 Clojure 的test.checklet
生成器中的示例,生成一个非空字符串列表,将该列表提供给另一个生成器以从中选择一个字符串,然后创建一个包含字符串列表和所选字符串的映射。在 Clojure 中,它看起来如下:
受到io.kotest.property.arbitrary.bind
启发,我尝试按如下方式实现它,但它不起作用(Kotlin 编译器吐出“类型推断失败”):
kotlin - 无法在 kotlin 多平台模块中解析 io.kotest:kotest-runner-junit5-jvm:4.1.1
我有一个包含多个模块的项目。其中一个模块是 kotlin 多平台。我正在尝试使用 Kotest 4.1.1 为其添加单元测试。此版本发布在存储库 mavenCentral() 中,我可以在使用 java 库插件的模块中很好地使用此版本。但是在多平台模块中使用 Kotest 4.1.1 时每次尝试同步都会失败:
我不明白为什么会这样。这个错误肯定是特定于使用 kotlin 多平台插件的模块,因为使用常规 kotlin jvm 插件的同一项目中的不同模块和相同版本的 kotest 可以很好地同步。所以 gradle 绝对能够在定义的存储库中找到发布并使用 kotest 4.1.1。
结果(不足为奇),kotest 的东西不在 multiplatform 模块中 commonTest 的测试类路径中,因此单元测试类无法导入 io.kotest.xxx 包。
我希望在 JVM 运行单元测试(使用 junit5)中使用 kotest 来测试多平台代码。但这是我第一次尝试做多平台,所以一切都是可疑的:-)
下面的代码片段是来自多平台模块的 build.gradle.kts 的 sourceSets 代码。如果注释部分保持原样,gradle 同步很好,但 commonTest 中的源当然看不到 kotest。如果注释被删除,则会发生错误
这是两个模块中使用的 Kotest.framework val 的值:
在 Android Studio 中使用 kotlin 多平台插件时,有没有人让 kotest 4.1.1 工作?任何关于如何进一步诊断的想法将不胜感激。提前致谢...
配置:Android Studio 4.0 Gradle 6.5.1 Kotlin 1.3.72
kotest - 多个断言 (assertAll) - Kotest
有什么方法可以在 DSL 样式中检查 Kotest 中的多个断言 - 没有来自 JUnit 的 Assertions.assertAll 方法?
我可以写类似的东西吗
代替
kotlin - 有没有更简单的方法来使用 Kotest 基于属性的测试来测试所有排列?
我正在使用 kotlin + Kotest 属性测试,并尝试使用如下列表生成器测试 2 个参数的所有排列:
我希望使用穷举生成器能够以这样的方式生成它们,即通过 4 次迭代,所有可能的排列都将被覆盖。像这样:
相反,穷举生成器总是按照列出的顺序排列,如下所示:
这意味着我要多次测试同一个案例。
我已经尝试将一些生成器切换到 Arbs,这确实会改变顺序,但不是最佳的。为了增加击中所有案例的可能性,我必须比使用正确的顺序进行更多的测试。
我也考虑过像这样多次列出相同的元素
但这似乎不可持续,尤其是当我以后想添加更多参数或值时。
有没有办法生成详尽的排列,而不仅仅是继续遍历每个列表?
wiremock - 使用证书的 Wiremock 在 Windows 上不起作用
此错误仅发生在 Windows 操作系统上。在 Linux 和 MacOS 上运行良好。
我已确保证书的密码正确,它们确实存在于上述位置并且端口可用。语言是 Kotlin。测试框架是 Kotest。
证书位于:test/resources/ssl-certs/client-cert.p12 test/resources/ssl-certs/server-cert.p12
我得到的错误(仅在 Windows 上):
java - 有没有办法在测试之间停止 micronaut 计划的工作?
我有一个基于属性动态调度作业的应用程序。它侦听 ServiceReadyEvent,然后安排作业。下面是一个通过工厂添加到上下文的小示例。
为了测试这段代码,我使用 kotest 进行了 Micronaut 测试。
我还有另一份工作的第二次测试
我的问题在于,在第二次测试期间,我看到在第二次测试运行期间仍然安排了第一个作业:
除了作业的运行之外,关于第一次运行测试的其他一切都已停止。我发现它仍在运行,因为它在作业运行期间由于 HttpClient 被关闭而引发异常。
我试过了
- 重建测试之间的测试上下文
rebuildContext = true
- 跟踪我班上预定的期货,
JobsLoader
然后在一个afterSpec
函数中取消它们。当我去取消期货时,期货清单总是空的。 - 手动刷新 TaskScheduler 和 ExecutorService bean
测试都顺利通过,但它们到处都是例外——尤其是当我开始测试越来越多的工作时,除了我正在测试的工作之外的所有工作都不断失败。我不确定这是否是 kotest、micronaut 测试、调度程序、某种组合或完全其他的问题(我也看到了 vertx 日志,但我认为这不是问题)。我真的只需要想办法在下一次测试运行之前杀死这些作业/线程。
任何帮助或想法将不胜感激!
kotlin - TestContainers 和 Mysql:用户“@'172.17.0.1”的访问被拒绝(使用密码:否)
我编写了一个简单的存储库来使用 TestContainers 测试 Kotlin Exposed。我使用的数据库是mysql。
这是我的代码:
代码在beforeSpec
也许我错过了一些东西,任何帮助将不胜感激
我使用的库:
- 测试
- kotest 扩展测试容器
- 测试容器
- 测试容器-mysql
kotlin - kotlin kotest/kotlintest BehaviorSpec afterSpec/finalizeSpec 调用太频繁或根本不调用
我有一个 kotlin kotest(以前称为 kotlintest)BehaviorSpec
在它下面有一个Given("...")
和很多When("...") Then("...")
我想在整个规范(分别是每个Given
子句)完成后执行清理。
在使用时,afterSpec { }
我对子句进行了多次调用(When
s??),afterSpec { }
而不仅仅是在规范完成(或完成/每个Given
子句)之后调用
在使用finalizeSpec { }
它时根本不会被调用(它里面的断点永远不会被命中)
我究竟做错了什么?
还是我错过了BehaviorSpec
s 的一些奇特特征?