Articles of testing

在Android猴子上禁用系统级事件

猴子testing我的应用程序 % adb shell monkey -p com.foo.bar –throttle 1000 -v 14400 我注意到它访问我的设备上的各种系统设置,如audio控制和拍摄屏幕截图。 根据http://developer.android.com/tools/help/monkey.html ,这是它的行为方式。 猴子是一个运行在你的模拟器或设备上的程序,并生成伪随机的用户事件stream,如点击,触摸或手势,以及一些系统级事件。 是否有可能排除系统级别的事件,所以猴子完全专注于我的目标应用程序? 我看了约束的'-c'选项,但看看http://developer.android.com/reference/android/content/Intent.html上的可用Intents,我似乎没有看到任何有关禁用这样的系统级事件。 任何指针?

为什么Robolectric第一次testing运行时间太长?

我正在用Robolectrictesting我的Android应用程序,但是我遇到了一个奇怪的情况。 发生什么事情是,当我运行一些testing时,第一次testing比Robolectrictesting要花费更多的时间。 从testing本身来看,这并不是特定的,因为我在testing的顺序上尝试了不同的configuration,结果是第一个testing总是最慢的。 这是Robolectric的安装时间还是类似的? 提供的任何信息都很有用。 例如:

Android – Jacoco代码覆盖忽略了Robolectrictesting

试图在使用Jacoco的Android Robolectrictesting中获得代码覆盖率,但是在创build报告时,它拒绝承认我的Robolectrictesting。 我的jacoco.gradle文件如下: apply plugin: 'jacoco' jacoco { toolVersion = "0.7.6.201602180812" } project.afterEvaluate { android.applicationVariants.all { variant -> def name = variant.name def testTaskName = "test${name.capitalize()}UnitTest" tasks.create(name: "${testTaskName}Coverage", type: JacocoReport, dependsOn: "$testTaskName") { group = "Reporting" description = "Generate Jacoco coverage reports for the ${name.capitalize()} build." classDirectories = fileTree( dir: "${project.buildDir}/intermediates/classes/${name}", excludes: ['**/R.class', '**/R$*.class', '**/*$ViewInjector*.*', […]

如何用Espressotesting特定的活动?

我刚刚开始在Androidtesting,这似乎很基本,但经过大量的search引擎,我仍然无法find答案的任何地方。 在我的Android应用程序中,显示的第一个活动是一个login屏幕,随后是带有选项的主屏幕以导航到其他活动。 为了testing我想要的活动,我现在必须先通过这两个活动。 我如何设置Espressotesting(使用ActvityTestRule / JUnit4),以便立即启动我想testing的活动? 编辑 更具体地说,我的问题是在Espressotesting的所有教程中,所有的testing都是从应用程序的主要活动开始的,使用一个ActivityTestRule,看起来像这样 @Rule public final ActivityTestRule<MainActivity> mRule = new ActivityTestRule<MainActivity>(MainActivity.class); 我希望testing从指定的活动开始,目前我正在通过不断重复这样的testing代码来导航 onView(withId(R.id.go_to_other_activity_button)).perform(click())

使用Espresso进行相机操作UItesting

我需要使用espressotesting项目自动执行我的UItesting以便进行以下操作。 操作: 点击打开我的手机相机的button。 捕获图像,并保存在SD卡存储的图像。 完成后还要在屏幕上更新小图像视图。 应用程序工作正常,但与所有其他操作和类似的上述操作,它成为一个耗时的过程,以手动testing一次又一次。

Logcat独立客户端

我已经开发了android应用程序。 现在是时候把它交给betatesting者了。 有没有独立的应用程序将收集LogCat输出? 我不想强迫testing者安装整个android开发环境。 我想应用程序会通过USB端口收集日志,并将其显示到PC控制台(logging到SD卡不方便),以便testing人员可以提供崩溃跟踪或一些debugging信息。

Android上testing代码覆盖率的替代方法是什么?

我知道Android的Ant工具带有内置的Emma代码覆盖范围,但是Emma的报告看起来越来越过时,不能轻易地集成到其他报道报告甚至Sonar中,这主要是因为Emma缺乏详细的XML报告格式。 我想达到的是 unit testing的代码覆盖率(基于Robolectric的,已经用Cobertura完成) 集成testing的代码覆盖率(基于Robotium- / Emulator的,目前与Emma分开进行) 理想的合并代码覆盖结果(这是恕我直言只可能与Cobertura,并需要每个testing执行的原始* .ser文件) 发布到Sonar(目前只做unit testing的覆盖面,Sonar只了解一种覆盖格式,据我所知) 我有其他的select吗? 编辑: 在sonar-devel上的这个post大概总结了Android代码覆盖支持以及Sonar支持的当前状态。 叹

什么是最好的方式来崩溃Android应用程序?

导致Android应用程序崩溃的最佳方法是什么? 我们正在努力使我们的应用程序尽可能坚如磐石。 对于我自己的贡献,如果你有一个使用networking服务的应用程序,进入你的应用程序与WiFi连接,然后closuresWiFi以各种方式。 例如,走出范围,或背景的应用程序,手动closuresWiFi,然后前景的应用程序。

'./gradlew -Dtest.single = SimpleTest test'运行我所有的testing

我的项目是在Android Studio上创build的正常的Android项目。 我GOOGLE了很多运行一个单一的testing(在SimpleTesttesting,在这种情况下1testing),每个人都说我应该这样做 ./gradlew -Dtest.single=SimpleTest test 在我的根文件夹中。 或者我在我的内部项目文件夹 ../gradlew -Dtest.single=SimpleTest test 我尝试了很多这样的方法,但是它总是运行我所有的testing(在所有类中有11个testing) 在我的build.gradle有没有问题,还是有我缺less的东西? 这是我的build.gradle文件。 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.+' classpath 'com.github.jcandksolutions.gradle:android-unit-test:1.0.+' } } apply plugin: 'android' repositories { mavenCentral() } android { compileSdkVersion 18 buildToolsVersion "18.1.1" defaultConfig { minSdkVersion 10 targetSdkVersion 18 // I changed this for this question packageName […]

Android的Gradle任务:connectedInstrumentTest发布构build?

有什么办法可以对发布构buildtypes或任何其他自定义构build变体运行testing吗? connectedInstrumentTest任务的默认行为是仅针对Debug构build变​​体运行testing 有任何想法吗?