Android Studio-测试配置启动应用程序

Android Studio-测试配置启动应用程序,第1张

概述我在项目的单独程序包中有几个AndroidTestCase子类: 但是,每当我从AndroidStudio运行Android测试配置时,我都会看到我的常规应用也正在启动.我看到onCreate方法在我的Application类中启动了(这真的很糟糕,因为我在那里加载了一些其他资源). 为什么AndroidStudio/gradle也同

我在项目的单独程序包中有几个AndroidTestCase子类:
 

但是,每当我从AndroID Stu@R_403_6901@运行AndroID测试配置时,我都会看到我的常规应用也正在启动.我看到onCreate方法在我的Application类中启动了(这真的很糟糕,因为我在那里加载了一些其他资源).
 为什么AndroID Stu@R_403_6901@ / gradle也同时运行我的应用程序?我可以通过编程方式检测我是否处于测试或常规配置中吗?运行测试之前,我可以停止引导常规应用程序吗?
另外,当我以调试模式运行测试时,它不会在放置在应用程序onCreate方法内部的断点处停止.为什么会这样呢?

编辑:

测试类的主体并不重要,可以是这样的:

public class SimpleTest extends AndroIDTestCase {    public voID testSample()    {        assertEquals(true, false);    }}

仅执行此简单测试会在应用程序类内部启动onCreate方法.
Gradle控制台打印出:

Executing tasks: [:app:assembleDeBUG, :app:assembleDeBUGTest]

我猜第一个任务创建了我的Application类的实例-这是预期的行为吗?

解决方法:

Why is AndroID Stu@R_403_6901@/gradle running my app as well?

Can I stop my regular app from being booted before running tests?

AndroIDTestCase是JUnit TestCase的扩展,它知道您的androID应用程序.如果您不需要测试您的androID应用程序而只想测试纯Java,则应该使用JUnit框架.创建常规的JUnit测试,不要在其中使用androID类,并运行JUnit测试配置,如下所示:

您应该将AndroIDTestCase视为工具测试,它将构建androID应用并在其上运行该测试.结合使用Espresso和Robotium很有用.两者都可以在基本的androID测试类上运行,并且都将在测试之前构建并运行您的应用程序.需要真实的设备或仿真器.

使用普通的JUnit测试或Robolectric在桌面JVM上测试Java.

Can I programatically detect if I am insIDe test or regular configuration?

您可以使用gradle的功能通过自动生成的BuildConfig文件提供此类信息.

在您的build.gradle

androID {    defaultConfig {        testPackagename "com.foo.test"    }}

在您的代码:

BuildConfig.PACKAGE_name.equals("com.foo.test")

总结

以上是内存溢出为你收集整理的Android Studio-测试配置启动应用程序全部内容,希望文章能够帮你解决Android Studio-测试配置启动应用程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1078247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存