因此,对于我的普通 Android 项目,我在 AndroidManifest.xml 中有以下内容:
<application android:name=".utilities.App" ...>
....
</application>
然后我有我的应用程序类:
public class App extends Application {
....
}
然后我有一个与 Android 项目关联的 Android JUnit 测试项目。一切都很好,我可以编写 JUnit 测试。但是,我尝试使用 JUnit 测试运行代码覆盖率,但结果却很臃肿。原因是因为我的 App 类被调用并初始化,就像我的应用程序实际启动一样。我不希望在运行 JUnit 测试或代码覆盖率时执行自定义 App 类。 JUnit 测试所需的任何设置都将进入适当的 JUnitsetup()
方法。有什么方法可以阻止它执行我的自定义应用程序类,或者阻止由于创建我的应用程序类而执行的任何类/方法/行不计入代码覆盖率?
除非有人有更好的想法,否则我找到的临时解决方案将会起作用。
- 进入主 Android 项目的 AndroidManifest.xml。
- 将 android:name 属性从“.utilities.App”更改为“android.app.Application”
- 运行代码覆盖率实用程序/JUnit 测试
- 将 android:name 属性从“android.app.Application”更改回“.utilities.App”
- 将应用程序重新部署到设备上(以便在代码覆盖率/JUnit 测试外部运行时使用正确的应用程序类)
我确信真正的解决方案是使这个过程自动化,但我太懒了,不愿意这样做,而且感觉很黑客且错误。但至少这是一个解决方法,除非有人有任何想法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)