gpt4 book ai didi

intellij-idea - 为什么在我的单元测试中主源代码树中的 "internal"类型不可见?

转载 作者:行者123 更新时间:2023-12-02 12:53:47 25 4
gpt4 key购买 nike

我在 IntelliJ 中有一个 Kotlin 项目,其结构如下:

  • 主/com/foo/Bar.kt
  • test/com/foo/BarTest.kt

  • 在哪里 Bar定义为:
    internal class Bar

    BarTest是这样的:
    class BarTest {
    private lateinit var bar: Bar
    }

    我在 IntelliJ 中遇到了对 Bar 的引用的编译器错误留言:

    Cannot access 'Bar': it is internal in 'com.foo'



    然而,测试是从命令行编译和运行的(通过 Gradle)。

    使用 IntelliJ 时如何抑制/删除此错误?

    我的设置是:
  • macOS 10.14.1
  • IntelliJ 2018.2.6
  • Kotlin 1.3.10
  • 最佳答案

    我使用相同的 IntelliJ 安装同时打开了两个项目:

  • 一个以前的项目,我可以在其中对 internal 进行单元测试类位于 main源代码树(都在同一个 IntelliJ 模块的边界内)
  • 我无法重现此设置的当前项目

  • IntelliJ 在以前的设置中仍然没有给出错误的事实让我得出结论,这个问题与我的 IntelliJ 设置无关。正如@JaysonMinard 建议的那样,我查看了 Gradle 配置的差异。

    不同之处在于当前项目的顶级 settings.gradle ,我使用重命名模块的约定,a la:
    findProject(':module-blah')?.name = 'blah'

    ...以便通过较短的名称引用我的 Gradle 项目,同时在我的项目浏览器中连续列出它们(而不是按字母顺序与其他文件一起分散)。删除此快捷方式恢复了我在单元测试中寻找的行为。

    关于intellij-idea - 为什么在我的单元测试中主源代码树中的 "internal"类型不可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53366990/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com