测试运行失败:仪器仪表运行失败,原因是“过程坠毁。”测试多个机器人活动时,测试、多个、仪器仪表、机器人

由网友(活该没人陪伴你i)分享简介:我有一个问题,我的测试Android应用程序。我有2 TestCase类,如果我单独执行它们,是没有问题的,测试运行,直到结束。但是,如果我愿意用鼠标右键单击我的测试项目,并选择为Android的JUnit测试运行我有一个消息启动仪器android.test.InstrumentationTestRunner在设备模...

我有一个问题,我的测试Android应用程序。 我有2 TestCase类,如果我单独执行它们,是没有问题的,测试运行,直到结束。但是,如果我愿意用鼠标右键单击我的测试项目,并选择为Android的JUnit测试运行我有一个消息

 启动仪器android.test.InstrumentationTestRunner在设备模拟器-5554
 [2012-03-27十五点56分27秒 -  matroussedemaquillageTest]收集考试信息
 [2012-03-27 15点56分三十一秒 -  matroussedemaquillageTest]试运行失败:仪器仪表运行失败,原因是过程坠毁。
 

参见下文为我的两个testClasses:

第一个测试类

 包fr.smardine.matroussedemaquillage.test;

进口android.test.ActivityInstrumentationTestCase2;
进口android.widget.ImageSwitcher;
进口fr.smardine.matroussedemaquillage.EntryPoint;

公共类EntryPointTest扩展
    ActivityInstrumentationTestCase2<入口点> {

私人入口点mActivity;
    私人ImageSwitcher mSwitcher;

    公共EntryPointTest(){
        超(fr.smardine.matroussedemaquillage
                fr.smardine.matroussedemaquillage.EntryPoint.class);
    }

    @覆盖
    保护无效设置()抛出异常{
        super.setUp();
    }

    @覆盖
    保护无效tearDown的()抛出异常{
        super.tearDown();
    }

    公共无效的test2(){
        的assertEquals(2,2);
    }
}
 

和第二个:

 包fr.smardine.matroussedemaquillage.test;

进口android.test.ActivityInstrumentationTestCase2;
进口android.widget.ImageView;
进口fr.smardine.matroussedemaquillage.Main;

公共类MainTest扩展ActivityInstrumentationTestCase2<主> {

    私人主营mActivity;
    私人ImageView的btRemplir;
    私人ImageView的btPerime;
    私人ImageView的btNotes;

    公共MainTest(){
        超(fr.smardine.matroussedemaquillage
                fr.smardine.matroussedemaquillage.Main.class);
    }

    @覆盖
    保护无效设置()抛出异常{
        super.setUp();
    }

    @覆盖
    保护无效tearDown的()抛出异常{
        super.tearDown();
    }


    公共无效的test1(){
        的assertEquals(1,1);
    }
}
 
上海市计量校准 计量仪器检测第三方检测公司

正如你可以看到我的测试都没有这么复杂,即使我消灭用户数据当我启动我的模拟器,有相同的消息,如果我执行两个测试。 哦,顺便说一句,在Android 2.1系统上运行的模拟器,这是我的Andr​​oidManifest.xml文件:

 < XML版本=1.0编码=UTF-8&GT?;
<舱单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
包=fr.smardine.matroussedemaquillage.test
安卓版code =1
机器人:VERSIONNAME =1.0>

<使用-SDK安卓的minSdkVersion =7安卓targetSdkVersion =7/>

<仪器仪表
    机器人:名称=android.test.InstrumentationTestRunner
    机器人:targetPackage =fr.smardine.matroussedemaquillage/>

<应用
    机器人:图标=@可绘制/ ic_launcher
    机器人:标签=@字符串/ APP_NAME>
    <使用库机器人:名称=android.test.runner/>
< /用途>

< /舱单>
 

编辑: 我的日志猫:

  I / ActivityManager(64):启动PROC fr.smardine.matroussedemaquillage的增值应用fr.smardine.matroussedemaquillage:PID = 510 UID = 10029导报= {3003,1015}
D / DDM堆(510):GOT功能列表请求D / dalvikvm(510):GC释放5427对象/ 420224字节90毫秒
D / dalvikvm(510):GC释放6498的对象/在79ms 506616字节
D / dalvikvm(510):GC释放7048对象/在90毫秒567464字节
D / dalvikvm(510):GC释放8628的对象/在73ms 503840字节
我/的System.out(510):无法打开test.properties
I / AndroidRuntime(510):AndroidRuntime onExit调用exit(-1) - 
D /合子(30):过程510退出干净(255)
I / ActivityManager(64):过程fr.smardine.matroussedemaquillage(PID 510)已经死亡。
W / ActivityManager(64):的应用程序fr.smardine.matroussedemaquillage运行仪器ComponentInfo崩溃{fr.smardine.matroussedemaquillage.test / android.test.Instrumentatio nTestRunner}
D / ActivityManager(64):卸载过程fr.smardine.matroussedemaquillage
D / AndroidRuntime(504):关闭虚拟机
D / dalvikvm(504):DestroyJavaVM等非守护线程退出
D / dalvikvm(504):DestroyJavaVM关闭VM下来
D / dalvikvm(504):HeapWorker螺纹关停
D / dalvikvm(504):HeapWorker线程已关闭
D / JDWP(504):JDWP关闭网...
D / JDWP(504):GOT唤醒信号,救助的选择了
I / dalvikvm(504):调试器分离;对象注册了1项
D / dalvikvm(504):虚拟机清理
D / dalvikvm(504):为0x0 LinearAlloc使用643668的5242880(12%)
I / dalvikvm(504):JNI:(来自??? ???)AttachCurrentThread
E / AndroidRuntime(504):错误:线程附加失败
 

解决方案

我曾经得到这个错误,当我使用System.exit(0),在我的测试活动的onFinish象下面这样:

  @覆盖
    公共无效结束(){
        super.finish();
        System.exit(0);

    }
 

因此​​,检查您的主要活动的onFinish方法。

I've got an issue with testing my android application. I have 2 testCase class, if I execute them separately, there is no problem, the tests run until the end. But if I do "right-click" on my test project and choose "Run as Android Junit Test" I've got a message

 Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5554
 [2012-03-27 15:56:27 - matroussedemaquillageTest] Collecting test information
 [2012-03-27 15:56:31 - matroussedemaquillageTest] Test run failed: Instrumentation run  failed due to 'Process crashed.'

see bellow for my two testClasses:

the first test class

package fr.smardine.matroussedemaquillage.test;

import android.test.ActivityInstrumentationTestCase2;
import android.widget.ImageSwitcher;
import fr.smardine.matroussedemaquillage.EntryPoint;

public class EntryPointTest extends
    ActivityInstrumentationTestCase2<EntryPoint> {

private EntryPoint mActivity;
    private ImageSwitcher mSwitcher;

    public EntryPointTest() {
        super("fr.smardine.matroussedemaquillage",
                fr.smardine.matroussedemaquillage.EntryPoint.class);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
    }

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
    }

    public void test2() {
        assertEquals(2, 2);
    }
}

and the second:

package fr.smardine.matroussedemaquillage.test;

import android.test.ActivityInstrumentationTestCase2;
import android.widget.ImageView;
import fr.smardine.matroussedemaquillage.Main;

public class MainTest extends ActivityInstrumentationTestCase2<Main> {

    private Main mActivity;
    private ImageView btRemplir;
    private ImageView btPerime;
    private ImageView btNotes;

    public MainTest() {
        super("fr.smardine.matroussedemaquillage",
                fr.smardine.matroussedemaquillage.Main.class);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
    }

    @Override
    protected void tearDown() throws Exception {
        super.tearDown();
    }


    public void test1() {
        assertEquals(1, 1);
    }
}

As you can see my test are not so complicated, even if i "wipe user data" when I launch my emulator, there is the same message if I execute the two tests. Oh, by the way, the emulator run under android 2.1 and this is my AndroidManifest.xml file:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="fr.smardine.matroussedemaquillage.test"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7" />

<instrumentation
    android:name="android.test.InstrumentationTestRunner"
    android:targetPackage="fr.smardine.matroussedemaquillage" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <uses-library android:name="android.test.runner" />
</application>

</manifest>

Edit: my log cat:

I/ActivityManager(64): Start proc fr.smardine.matroussedemaquillage for added application fr.smardine.matroussedemaquillage: pid=510 uid=10029 gids={3003, 1015} 
D/ddm-heap(510): Got feature list request D/dalvikvm(510): GC freed 5427 objects / 420224 bytes in 90ms 
D/dalvikvm(510): GC freed 6498 objects / 506616 bytes in 79ms 
D/dalvikvm(510): GC freed 7048 objects / 567464 bytes in 90ms 
D/dalvikvm(510): GC freed 8628 objects / 503840 bytes in 73ms 
I/System.out(510): Failed to open test.properties 
I/AndroidRuntime(510): AndroidRuntime onExit calling exit(-1) –
D/Zygote(30): Process 510 exited cleanly (255) 
I/ActivityManager(64): Process fr.smardine.matroussedemaquillage (pid 510) has died. 
W/ActivityManager(64): Crash of app fr.smardine.matroussedemaquillage running instrumentation ComponentInfo{fr.smardine.matroussedemaquillage.test/android.test.Instrumentatio‌​nTestRunner} 
D/ActivityManager(64): Uninstalling process fr.smardine.matroussedemaquillage
D/AndroidRuntime(504): Shutting down VM 
D/dalvikvm(504): DestroyJavaVM waiting for non-daemon threads to exit 
D/dalvikvm(504): DestroyJavaVM shutting VM down
D/dalvikvm(504): HeapWorker thread shutting down 
D/dalvikvm(504): HeapWorker thread has shut down 
D/jdwp(504): JDWP shutting down net... 
D/jdwp(504): Got wake-up signal, bailing out of select 
I/dalvikvm(504): Debugger has detached; object registry had 1 entries 
D/dalvikvm(504): VM cleaning up 
D/dalvikvm(504): LinearAlloc 0x0 used 643668 of 5242880 (12%) 
I/dalvikvm(504): JNI: AttachCurrentThread (from ???.???) 
E/AndroidRuntime(504): ERROR: thread attach failed'

解决方案

I used to get this error when I used System.exit(0) on my test Activity's onFinish like below:

@Override
    public void finish() {
        super.finish();
        System.exit(0);

    }

So check your Main activity's onFinish method.

阅读全文

相关推荐

最新文章