【问题标题】:Simpe Android JUnit test hangs in EclipseSimpe Android JUnit 测试在 Eclipse 中挂起
【发布时间】:2012-06-02 20:40:16
【问题描述】:

我一直在关注有关 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);
    }

}

但是,测试没有完成。

我在控制台中得到的信息:

Android Launch!
adb is running normally.
Performing android.test.InstrumentationTestRunner JUnit launch
Automatic Target Mode: Several compatible targets. Please select a target device.
Uploading TemperatureConverterTest.apk onto device '80A358103041548074'
Installing TemperatureConverterTest.apk...
Success!
Project dependency found, installing: TemperatureConverter
Application already deployed. No need to reinstall.
Launching instrumentation android.test.InstrumentationTestRunner on device 80A358103041548074
Collecting test information
Test run failed: Instrumentation run failed due to 'Process crashed.'
Test run finished
Sending test information to Eclipse
Running tests...

然后它挂了,这里是 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)

尝试调试,但始终无法达到 testPreconditions()。 谢谢。

【问题讨论】:

  • 可能挂在setUp()中,setUp在每个单元测试方法之前执行
  • 谢谢,你指点我研究代码。我忘了在 tearDown() 中调用 super;
  • 我认为你应该发布你的拆解方法作为答案

标签: android eclipse unit-testing junit


【解决方案1】:

只需要在tearDown()中调用super;

【讨论】:

  • 谢谢!一定是教程不需要时让我需要 super.tearDown() 的片段或东西。
猜你喜欢
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多