Simpe Android JUnit测试在Eclipse中挂起

Simpe Android JUnit测试在Eclipse中挂起,android,eclipse,unit-testing,junit,Android,Eclipse,Unit Testing,Junit,我一直在阅读关于Android测试的书,并实现了这个示例: public class TemperatureConverterActivityTests extends ActivityInstrumentationTestCase2<TemperatureConverterActivity> { private TemperatureConverterActivity mActivity; private EditText mCelsius;

我一直在阅读关于Android测试的书,并实现了这个示例:

public class TemperatureConverterActivityTests extends
        ActivityInstrumentationTestCase2<TemperatureConverterActivity> {

    private TemperatureConverterActivity mActivity;

    private EditText mCelsius;
    private EditText mFarenheit;

    public TemperatureConverterActivityTests() {
        this("TemperatureConverterActivityTests");
    }

    public TemperatureConverterActivityTests(String name) {
        super(TemperatureConverterActivity.class);
        setName(name);
    }

    protected void setUp() throws Exception {
        super.setUp();
        mActivity = getActivity();

        mCelsius = (EditText) mActivity
                .findViewById(org.mighter.tc.R.id.celsius);
        mFarenheit = (EditText) mActivity
                .findViewById(org.mighter.tc.R.id.farenheit);
    }

    protected void tearDown() throws Exception {
    }

    public final void testPreconditions() {
        assertNotNull(mActivity);
    }

    public final void testHasInputFields() {
        assertNotNull(mCelsius);
        assertNotNull(mFarenheit);
    }

}
然后它挂起,下面是JUnit视图:

来自LogCat的唯一信息:

05-28 17:23:54.952: W/ActivityManager(224): Crash of app org.mighter.tc running instrumentation ComponentInfo{org.mighter.tc.test/android.test.InstrumentationTestRunner}
05-28 17:23:55.042: I/TestRunner(7174): <!>android.test.TestPrinter 50<!> started: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.062: I/TestRunner(7174): <!>android.test.TestPrinter 56<!> finished: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.062: I/TestRunner(7174): <!>android.test.TestPrinter 77<!> passed: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.072: I/TestRunner(7174): <!>android.test.TestPrinter 50<!> started: testPreconditions(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.082: I/TestRunner(7174): <!>android.test.TestPrinter 56<!> finished: testPreconditions(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.082: I/TestRunner(7174): <!>android.test.TestPrinter 77<!> passed: testPreconditions(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.652: I/TestRunner(7194): <!>android.test.TestPrinter 50<!> started: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.853: I/TestRunner(7194): <!>android.test.TestPrinter 56<!> finished: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.853: I/TestRunner(7194): <!>android.test.TestPrinter 77<!> passed: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.853: I/TestRunner(7194): <!>android.test.TestPrinter 50<!> started: testPreconditions(org.mighter.tc.test.TemperatureConverterActivityTests)
05-2817:23:54.952:W/ActivityManager(224):运行instrumentation组件的app org.mighter.tc崩溃{org.mighter.tc.test/android.test.InstrumentationTestRunner}
05-28 17:23:55.042:I/TestRunner(7174):android.test.TestPrinter 50已启动:testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.062:I/TestRunner(7174):android.test.TestPrinter 56完成:testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.062:I/TestRunner(7174):android.test.TestPrinter 77通过:testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.072:I/TestRunner(7174):android.test.TestPrinter 50已启动:测试前提条件(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.082:I/TestRunner(7174):android.test.TestPrinter 56完成:测试前提条件(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.082:I/TestRunner(7174):android.test.TestPrinter 77通过:测试前提条件(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.652:I/TestRunner(7194):android.test.TestPrinter 50已启动:testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.853:I/TestRunner(7194):android.test.TestPrinter 56完成:testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.853:I/TestRunner(7194):android.test.TestPrinter 77通过:testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.853:I/TestRunner(7194):android.test.TestPrinter 50已启动:测试前提条件(org.mighter.tc.test.TemperatureConverterActivityTests)
已尝试调试,但从未达到TestPremissions()。
谢谢。

只需要在拆卸时调用super()

它可能挂在setUp()中,安装程序在每个单元测试方法之前执行。谢谢,您让我查看代码。我忘了在tearDown()中调用super;我想你应该把你的拆除方法作为回答。谢谢!当教程不需要super.tearDown()时,一定是片段或其他东西让我需要它。
05-28 17:23:54.952: W/ActivityManager(224): Crash of app org.mighter.tc running instrumentation ComponentInfo{org.mighter.tc.test/android.test.InstrumentationTestRunner}
05-28 17:23:55.042: I/TestRunner(7174): <!>android.test.TestPrinter 50<!> started: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.062: I/TestRunner(7174): <!>android.test.TestPrinter 56<!> finished: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.062: I/TestRunner(7174): <!>android.test.TestPrinter 77<!> passed: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.072: I/TestRunner(7174): <!>android.test.TestPrinter 50<!> started: testPreconditions(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.082: I/TestRunner(7174): <!>android.test.TestPrinter 56<!> finished: testPreconditions(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.082: I/TestRunner(7174): <!>android.test.TestPrinter 77<!> passed: testPreconditions(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.652: I/TestRunner(7194): <!>android.test.TestPrinter 50<!> started: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.853: I/TestRunner(7194): <!>android.test.TestPrinter 56<!> finished: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.853: I/TestRunner(7194): <!>android.test.TestPrinter 77<!> passed: testHasInputFields(org.mighter.tc.test.TemperatureConverterActivityTests)
05-28 17:23:55.853: I/TestRunner(7194): <!>android.test.TestPrinter 50<!> started: testPreconditions(org.mighter.tc.test.TemperatureConverterActivityTests)