禁用测试文件夹中的类的重复类错误 - Android Studio / IntelliJ

时间:2016-07-25 10:18:18

标签: java android unit-testing intellij-idea

我需要能够关闭“重复类”错误和可视指示符(红色波浪形下划线),当你有两个在同一个包中但在不同文件夹中命名相同的类时,你会得到这个错误。在这种情况下,'主'和'测试'。

背景

可以说这是this帖子的重复,但是,我认为一些背景是为了避免一些明显的回复(而且,该帖子也没有令人满意的答案)

此问题与单元测试和协作者模拟有关。众所周知,Android违反了java开发的基本“遏制继承”指南。这就是为什么你需要Robolectric来测试生命周期覆盖而不会让框架崩溃你的测试。您的协作者无法以正常方式进行模拟和注入,因为测试中的类 是协作者。

在这种情况下,我的大型企业客户通过在活动和碎片中添加了几层必须使用的类扩展,进一步违反了“对继承的遏制”指南。我无法修改这些图层,并试图模仿内部是不切实际的。最简单的解决方案是创建这个额外层的叶类的副本,为测试中的类提供单元测试友好的结果。

这很有效。运行单元测试时,测试副本将被解析,当您运行生产代码时,生产副本将得到解决。

只是需要抑制的持续恼人的错误指示。

变通方法,IntelliJ插件,自定义类加载器等 - 所有这些都将被考虑(带说明)。

1 个答案:

答案 0 :(得分:1)

它是硬编码的: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?