Articles of 仪器

Android InstrumentationTestRunner用于Hudson提取的XML输出

我有一个Androidtesting项目,我想链接到哈德森,但我还没有find一种方法来输出testing结果作为XML而不是文本。 有谁知道是否有一个简单的方法来做到这一点? -担

使用检测和JUnit4重新testingAndroid Activity

我想写testing重新创build活动。 执行旋转是可选的。 我希望testing可以写成最新版本的testing框架,由Google“祝福”。 我是新手写testing,所以我想学习基本的,主stream的,很好的支持工具。 掌握基本知识时,任何第三方testing框架都会好起来的。 而且由于我想testing非常基本的,经常发生的情况,基本的工具应该足够了,对吗? 最小testing代码: public class MainActivity extends AppCompatActivity { static int creationCounter = 0; Integer instanceId; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ++creationCounter; instanceId = new Integer(creationCounter); Log.d("TEST", "creating activity " + this + ", has id " + instanceId); } } 和testing课: @RunWith(AndroidJUnit4.class) public class ExampleInstrumentedTest { @Rule public […]

如何在仪器testing中将关键事件发送给无头模拟器?

我们正在开发一个在我们的构build服务器上运行的testing套件,但是当testing通过使用普通Android模拟器的开发机器时,构build服务器上的构build失败,因为我们只运行一个无头模拟器, -no-window标志。 尝试调用InstrumentationTestCase.sendKeys()方法以编程方式打开选项菜单时发生失败。 错误是: 权限被拒绝:将密钥事件从pid 646 uid 10026注入到由uid 1000拥有的窗口{43d55100 paused = false} 然后我们发现有一个INJECT_EVENTS权限,但是在清单中设置它没有任何作用。 实际上在日志中我们看到了这个输出: 不授予权限android.permission.INJECT_EVENTS包com.qype.radar(protectionLevel = 2标志= 0x6644) 这是否意味着这个许可是无用的? 我们还试图让testing仪器testing应用程序和被testing的应用程序使用android:sharedUserId共享相同的Linux用户ID,并运行在相同的过程中( android:process android:sharedUserId我们不确定是否已经如此),但是仍然没有运气。 这是否意味着目前无法在无头模拟器上运行包含关键事件的乐器,或者我们错过了什么?

InstrumentationTestRunner:android:functionalTest实现了什么?

我想知道什么InstrumentationInfo#functionalTest应该实现。 它是否对应用程序环境的启动有影响?

使用Espresso运行仪器testing:预validation类中的类参考parsing为意外的实现

我正在使用google-espresso在平台Kitkat上testing系统应用程序联系人。 我的testing项目位于#android-dir#/ cts / tests / tests / contactTest。 这是.mk: LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) # don't include this package in any target LOCAL_MODULE_TAGS := optional # and when built explicitly put it in the data partition LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_APPS) LOCAL_JAVA_LIBRARIES := android.test.runner LOCAL_STATIC_JAVA_LIBRARIES += librarycontacts LOCAL_CERTIFICATE := shared LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME […]

访问仪器testing资源

我试图find一种方法让我的检测testing可以访问testing包内生成的string资源。 更多细节: 我有一个从ActivityInstrumentationTestCase2inheritance的Androidtesting用例。 我使用Eclipse的新的Androidtesting项目来首先创buildtesting。 testing项目有资源(类似于一个普通Android项目的资源)。 我试图find一种方法来编程访问testing项目中的各个单独的testing中的string资源。 我努力了: String s = getInstrumentation().getContext().getString(R.string.blah); 和 String s = mActivity.getApplicationContext().getString(R.string.blah); 这两种方法都抛出一个NotFoundException。 我在我的strings.xml中定义了string“blah”。 上面代码中的R是从我的testing包导入的,而不是被testing的应用程序的包。 我可以通过后面的调用访问应用程序包中定义的资源。 找出在我的testing中访问XML定义的string资源的方法是有用的(因为我想避免在代码中键入string)。 我究竟做错了什么?

Instrumentation.execStartActivity中的Android NullPointerException

我一直从一些用户那里得到了一些例外: java.lang.NullPointerException at android.app.Instrumentation.execStartActivity(Instrumentation.java:1414) at android.app.Activity.startActivityForResult(Activity.java:2880) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817) at android.app.Activity.startActivity(Activity.java:2986) at com.google.android.gms.internal.bb$5.onClick(Unknown Source) at android.view.View.performClick(View.java:2535) at android.view.View$PerformClick.run(View.java:9130) at android.os.Handler.handleCallback(Handler.java:618) at android.os.Handler.dispatchMessage(Handler.java:123) at android.os.Looper.loop(SourceFile:351) at android.app.ActivityThread.main(ActivityThread.java:3826) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:538) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727) at dalvik.system.NativeStart.main(Native Method) 我在这里发现了一个类似的问题,但是从四月份开始就没有考虑到了。 我所知道的是,它是在三星Galaxy Y(GT-S5360)上复制的,我正在使用Google Maps Android API v2。 你有什么想法我怎么能做出这个解决方法?

ActivityUnitTestCase和ActivityInstrumentationTestCase2之间的区别

我是Android Instrumentation案例的新手。 我一直在看API示例,看到有时我们使用ActivityUnitTestCase和ActivityInstrumentationTestCase2。 两者有什么区别 ? 我们什么时候使用一个呢?

如何将parameter passing给使用adb shell和Instrumentation命令启动的testingfunction

我正在开发Android,我正在使用仪器来testing电话应用程序。 Instrumentation是Android env来testing应用程序。 为此,我使用testing用例名称的命令。 我运行adb,然后进入adb shell,然后在shell中写入am命令。 我希望与这个命令一起提供一个参数。 我的意思是我希望为am命令启动的testing提供参数。 可能吗 ??? 请帮忙 ?

在Dalvik字节码上添加新的寄存器

大家。 我在Dalvik字节码的仪表上遇到了一个问题。 起始字节码是: virtual methods .method public onClick(Landroid/view/View;)V .locals 12 .param p1, "v" # Landroid/view/View; … return-void .end method 要打印一些东西,我需要添加4个新的寄存器。 然而,12(本地)+2(参数)+4(新)> 16这将导致一些指令的问题。 所以,我以一种自杀的方式想到了一个想法: 整个寄存器的数量是20. v0-v11是本地的,v18-v19是参数。 首先将v18-v19移到v12-v13,参数寄存器在v15之内。 此外, 我们需要修改p0到v12,p1到v13。 如果我们想使用4个新的寄存器,请将v0-v3移动到v14-17。 处理4个新寄存器后,将v14-v17移到v0-v3。 新的字节码变成: virtual methods .method public onClick(Landroid/view/View;)V .locals 18 .param p1, "v" # Landroid/view/View; move v12, v18 move v13, v19 … //want to use 4 new […]