Android JUnit:定义不同的应用程序子类

Android JUnit:定义不同的应用程序子类,junit,code-coverage,android,Junit,Code Coverage,Android,因此,对于我的普通Android项目,我在AndroidManifest.xml中有以下内容: <application android:name=".utilities.App" ...> .... </application> 然后我有一个与Android项目相关联的Android JUnit测试项目。一切都很好,我可以编写JUnit测试。然而,我试图用我的JUnit测试来运行代码覆盖率,并且得到了臃肿的结果。原因是我的应用程序类被调用和初始化,就好像我的

因此,对于我的普通Android项目,我在AndroidManifest.xml中有以下内容:

<application android:name=".utilities.App" ...>
     ....
</application>

然后我有一个与Android项目相关联的Android JUnit测试项目。一切都很好,我可以编写JUnit测试。然而,我试图用我的JUnit测试来运行代码覆盖率,并且得到了臃肿的结果。原因是我的应用程序类被调用和初始化,就好像我的应用程序实际启动一样。我不希望在运行JUnit测试或代码覆盖率时执行自定义应用程序类。JUnit测试所需的任何设置都将进入相应的JUnit
setup()
方法。有什么方法可以阻止它执行我的自定义应用程序类,或者有什么方法可以防止由于创建我的应用程序类而执行的任何类/方法/行不计入代码覆盖率?

除非有人有更好的想法,否则我发现一个临时解决方案会起作用

  • 进入主Android项目的AndroidManifest.xml
  • 将android:name属性从“.utilities.App”更改为“android.App.Application”
  • 运行代码覆盖率实用程序/JUnit测试
  • 将android:name属性从“android.app.Application”更改回“.utilities.app”
  • 将应用程序重新部署到设备上(以便在代码覆盖率/JUnit测试外部运行时使用正确的应用程序类)

我确信真正的解决方案是自动化这个过程,但我太懒了,我觉得这很不妥当。但至少这是一种变通方法,除非有人有任何想法。

您没有告诉我们如何生成代码覆盖率报告。您使用的是EMMA指令化的android构建还是其他什么?只有一种方法可以使用android、AFAIK运行代码覆盖率,那就是EMMA实用程序。我正在运行Android提供的“ant coverage”命令。你找到其他解决方案了吗?
public class App extends Application {
     ....
}