Kotlin JUnit5 test 类 是否应该包含包语句?

Should Kotlin JUnit5 test classes contain package statements?

我正在编写一个 Kotlin 程序,根据惯例,它位于 src/main/kotlin/mypackage/*.kt 中,每个源文件都包含 package mypackage

我使用 IntelliJ IDEA 选项创建了一个测试 class、FooBarTest,它位于 src/test/kotlin/mypackage/FooBarTest.kt。到目前为止,还不错。

然而,令我惊讶的是,FooBarTest.kt 包含 package mypackage。这意味着它测试的东西需要使用单独的 import 语句显式导入。

IntelliJ IDEA 是不是告诉我一个惊人的事实,即与主源文件不同,测试源文件不应该指定包?

还是说错了,漏掉了一个应该有的package语句,我应该自己手写package mypackage语句?

我认为 IDEA 犯了一个错误——或者至少,没有它可能提供的帮助。

当然,没有真正的必要性 测试 类 与被测试的 类 在同一个包中。但根据我的经验,这很有意义:它们更容易找到,而且正如您所说,它避免了很多 import 语句。

它还使文件层次结构与包层次结构保持一致。同样,虽然在 Kotlin 中没有绝对必要,但它确实使文件更容易找到并避免意外冲突,我还没有找到偏离它的理由。