问题标签 [android-instrumentation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - UiDevice.getInstance(getInstrumentation()) 使用 startInstrumentation() 启动 Instrumentation 时崩溃(作为 Null 对象引用)
Android SDK:22(L)UiAutomator 版本:'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
在按钮单击上,我正在尝试使用从 Android 应用程序访问仪器
start 的值显示“true”,表示它已启动
问题是:一旦 Instrumentation 启动并调用 setUp() ,当执行以下内容时,就会发生崩溃
崩溃详情:
注意:从命令行执行时没有问题运行良好(am instrument -w com.automation.vzw.sanity.test/android.test.InstrumentationTestRunner)
请帮助克服这个
谢谢
android-studio - Android Studio -- 为 Instrumentation Test 清除应用数据
如何在不手动运行adb
命令的情况下让 Android Studio (AndroidJunitRunner) 在仪器测试之前清除应用程序数据?
我发现了android.support.test.runner.AndroidJUnitRunner
那种作弊方法——它实际上从未调用connectedCheck
或connectedAndroidTest
.
从命令行运行时
/li>$ gradle connectedCheck
通过单击仪器测试配置从 IDE 中运行时(带有红色/绿色箭头的绿色 Android 机器人徽标)
如您所见,最后一个 gradle 目标是
assembleDebugTest
connectedCheck
在开始仪器测试之前,我添加了一个钩子build.gradle
来清除主应用程序的数据。
我意识到,或者我可以在主应用程序中实现一个“清除数据”按钮,并让检测应用程序点击 UI,但我发现该解决方案不可取。
我查看了AndroidJUnitRunner
API,通过接口有钩子,Runlistener
但钩子是在测试应用程序的上下文期间,即在设备上运行,Android 禁止一个应用程序修改另一个应用程序。
http://junit.sourceforge.net/javadoc/org/junit/runner/notification/RunListener.html
如果您可以帮助我从 Android Studio 中自动触发以下操作之一,那么您将获得最佳答案:
- 执行命令行
adb shell pm clear my.main.app.package
, - 或者最好调用我的 gradle 任务
clearMainAppData
如果有另一种方法,我也全神贯注。当然,设备测试自动化应该有一种清除应用程序数据的清晰方法吗?
谢谢!
android - 由于“进程崩溃”,检测运行失败。经过长时间的测试执行
我有大约 700 个测试要执行。当我全部运行它们时,引发了崩溃
“由于‘进程崩溃’,仪器运行失败。”查看设备 logcat 了解详细信息。测试运行失败:由于“进程崩溃”,检测运行失败。
经过一段时间的执行,大约 10 分钟和约 360-370 次执行测试。
Logcat 不包含有关此崩溃的任何信息
它适用于从 Android Studio 运行,从 cmd(在 PC 和 Mac 上)。使用的设备 - Android 4.1.1 上的三星 S3
build.gradle 文件:
AndroidManifest.xml
还要补充一点:在我之前发布的代码中,不会发生这种崩溃,但我找不到究竟是什么变化导致了崩溃。
请帮我解决这个问题,我试图在两周内理解它。
android - 由于“java.lang.NullPointerException”,使仪器运行失败
我正在尝试通过扩展测试类来为我的应用程序中的活动编写单元测试用例ActivityUnitTestCase
。我可以更早地成功运行测试用例,但现在我在运行它们时总是遇到异常。尽管我对处理非常熟悉,但NullPointerExceptions
我无法弄清楚导致这种情况的问题。我找不到任何类似的问题,所以我发布了这个。
堆栈跟踪显示我的代码中的这一行有一个空对象引用
但是该startActivity
方法应该获取我正在测试的活动的实例。我不确定它为什么返回 null。
这是堆栈跟踪。
这是测试类
button - android instrumentation:需要模拟一个按钮点击
唯一的问题是该按钮位于 com.android.systemui 包中,或者我想是这样。用户必须按下 OK 按钮才能允许 adb over USB。我的触摸屏坏了,我正在通过 USB 鼠标控制手机,所以我无法点击 OK 按钮来启用调试(非 root 手机)。我在想一个仪器 apk 会做到这一点,但是......有麻烦了。
我采用的另一种方法是使用 systemui 的证书对仪器 .apk 进行签名。但这只会导致失败 [INSTALL_FAILED_INVALID_INSTALL_LOCATION]。
那么,有什么方法可以单击该按钮?
android - Android Studio:测试在调试模式下通过,但在使用运行选项时失败
我有一个简单的测试用例,我试图在单击另一个视图时验证是否正在加载特定视图
当我在 Android Studio 中使用Run选项时,上述测试失败。主要是因为TouchUtils.clickView()似乎根本没有做任何事情,并且从未加载新视图。
但是,当我使用Debug选项时,即使没有设置任何断点,同样的测试也会通过!
我尝试添加一个Thread.sleep()然后运行测试,但即使这样也没有帮助。关于为什么会发生这种情况的任何想法?
PS:我在 Android Studio 1.3.1 上运行
更新:即使我从命令行运行,测试也会失败
java - 在 androidTest 期间调用 onCreate() 之前的访问应用程序
MyApplication
class (extends Application
),当它启动时,将启动一个服务来检查一个SharedPreference
值。如果值为false
,则初始化一些数据。
出于测试目的,我想将其修改SharedPreference
为true
不会发生数据初始化。但是,当我这样做时,会发生竞争条件并MyApplication.onCreate()
在我有机会修改首选项之前调用它。
如何在MyApplication.onCreate()
调用之前修改首选项?这样的事情甚至可能吗?
我的应用程序.java
SearchFragmentTest.java (在 src/androidTest 风格中)
android - Android Studio 中的插桩测试
我一直在尝试在 Android Studio 中运行简单的检测测试,但没有成功。我遵循了单元测试指南,它工作正常。现在,我想测试难以模拟的组件。当我按照有关仪器测试的指南进行操作时,我最终会遇到依赖错误。
我做了什么:
安装 Android 测试支持库(Android Support Repository,rev 17)。
在 src 中创建一个目录 androidTest。添加以“test”结尾的 Java 文件夹 + 包。
- 添加一个简单的测试类
- 添加一个简单的TestSuit。
- 修改我的 gradle 文件以添加依赖项。
我只是添加了 line ,否则无法识别androidTestCompile 'junit:junit:4.12'
注释。@RunWith(AndroidJUnit4.class)
现在,当我启动测试时,我得到一个 Gradle 构建错误。
错误:任务':app:dexDebugAndroidTest'的执行失败。
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/jdkoracle/bin/java'' 以非零退出值 2 结束
有什么建议吗?我是否错过了有关测试库的某些内容?
谢谢
android - 无法升级到启用 Dynatrace 的 apk
我在我的 Android apk 文件上使用了 auto-instrumentor 命令。
它生成了三个新文件:
- 未签名
- 签
- 最后
现在,当我进行全新安装时,我可以使用我的应用程序。
但是,如果我尝试将早期版本升级到启用了 Dynatrace 的版本,它总是会给我一条消息
android - 异步任务 - Android Instrumentaion 单元测试 - 异常 - 只有创建的线程才能更新异步任务
这是我的 Asnyc 任务类
我试图从测试类测试我的异步任务
在下面找到我的课程。公共类 MainActivityTest 扩展 ActivityInstrumentationTestCase2 {
运行测试用例时,此行抛出异常 - 只有创建的线程才能更新异步任务
但是当我的手机被锁定时运行测试,我没有得到异常并且工作正常。
我该如何解决这个问题。