我需要能够关闭“重复类”错误和视觉指示器(红色波浪下划线),当您在同一个包中有两个名称相同但位于不同文件夹中的类时,就会出现这种情况。在这种情况下,“主要”和“测试”。
背景
可以说这是 this 的副本发布,但是,我认为一些背景是为了避免一些明显的回复(而且,该帖子没有令人满意的答案)。
这个问题与单元测试和协作者模拟有关。众所周知,Android 违反了 java 开发的基本“包含优于继承”准则。这就是为什么您需要 Robolectric 来测试生命周期覆盖而不会使框架崩溃您的测试。您的协作者不能以正常方式被模拟和注入(inject),因为被测试的类是协作者。
在这种情况下,我的大型企业客户进一步违反了“包含优于继承”的准则,他们从必须改用的 Activity 和 Fragments 添加了几层类扩展。我无法修改这些层,并且尝试模拟内部结构是不切实际的。最简单的解决方案是创建这个额外层的叶类的副本,为被测类提供单元测试友好的结果。
这行得通。当您运行单元测试时,测试重复项得到解决,而当您运行生产代码时,生产重复项得到解决。
这只是需要抑制的持续烦人的错误指示。
解决方法、IntelliJ 插件、自定义类加载器等 - 都会考虑(附有说明)。
最佳答案
它是硬编码的:source
唯一的方法是更改源代码并构建您自己的 IntelliJ - 但您将无法使用 Ultimate 版本。
或making an agent to replace the method - HighlightClassUtil.checkDuplicateTopLevelClass
。
这可能会派上用场,因此您可以将其作为普通插件使用:How can I add a Javaagent to a JVM without stopping the JVM?
关于java - 禁用测试文件夹中类的重复类错误 - Android Studio/IntelliJ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38565115/