android JUnit测试没有运行

时间:2011-02-05 04:39:43

标签: java android junit

问题不在于测试失败,而是根本没有运行。 也就是说,控制台告诉我他们跑了,但我完全看不到他们的结果。

请注意,我已经记得使用@Test

注释方法

以下是测试类的代码:

package module.jakway.JournalEntry.test;


import module.jakway.JournalEntry.Module_JournalEntry;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class MainTest extends android.test.ActivityInstrumentationTestCase2<Module_JournalEntry>
{

    public MainTest(Class activityClass) {
        super("module.jakway.JournalEntry", Module_JournalEntry.class);
        // TODO Auto-generated constructor stub
    }

    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
    }

    @AfterClass
    public static void tearDownAfterClass() throws Exception {
    }

    @Before
    public void setUp() throws Exception {
        super.setUp();

        Module_JournalEntry journalentry = getActivity();

        assertTrue(true);
    }

    @After
    public void tearDown() throws Exception {
    }

    @Test
    public void myTestCase()
    {
        assertTrue(false);
    }

}

我正在测试的项目名为Module_JournalEntry,包含module.jakway.JournalEntry和Activity Module_JournalEntry.java

这是控制台输出:

[2011-02-04 20:37:10 - Module_JournalEntryTest] Performing android.test.InstrumentationTestRunner JUnit launch
[2011-02-04 20:37:10 - Module_JournalEntryTest] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'my2.3Emulator'
[2011-02-04 20:37:12 - Module_JournalEntryTest] Application already deployed. No need to reinstall.
[2011-02-04 20:37:12 - Module_JournalEntryTest] Project dependency found, installing: Module_JournalEntry
[2011-02-04 20:37:14 - Module_JournalEntry] Application already deployed. No need to reinstall.
[2011-02-04 20:37:14 - Module_JournalEntryTest] Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5554
[2011-02-04 20:37:14 - Module_JournalEntryTest] Collecting test information
[2011-02-04 20:37:17 - Module_JournalEntryTest] Sending test information to Eclipse
[2011-02-04 20:37:17 - Module_JournalEntryTest] Running tests...
[2011-02-04 20:37:19 - Module_JournalEntryTest] Test run finished

和logcat输出:

02-04 20:37:10.266: DEBUG/AndroidRuntime(524): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
02-04 20:37:10.266: DEBUG/AndroidRuntime(524): CheckJNI is ON
02-04 20:37:11.236: DEBUG/AndroidRuntime(524): Calling main entry com.android.commands.pm.Pm
02-04 20:37:11.316: DEBUG/AndroidRuntime(524): Shutting down VM
02-04 20:37:11.336: INFO/AndroidRuntime(524): NOTE: attach of thread 'Binder Thread #3' failed
02-04 20:37:11.346: DEBUG/dalvikvm(524): GC_CONCURRENT freed 102K, 71% free 297K/1024K, external 0K/0K, paused 3ms+8ms
02-04 20:37:11.346: DEBUG/jdwp(524): Got wake-up signal, bailing out of select
02-04 20:37:11.346: DEBUG/dalvikvm(524): Debugger has detached; object registry had 1 entries
02-04 20:37:12.316: DEBUG/AndroidRuntime(534): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
02-04 20:37:12.316: DEBUG/AndroidRuntime(534): CheckJNI is ON
02-04 20:37:13.136: DEBUG/AndroidRuntime(534): Calling main entry com.android.commands.pm.Pm
02-04 20:37:13.186: DEBUG/AndroidRuntime(534): Shutting down VM
02-04 20:37:13.216: INFO/AndroidRuntime(534): NOTE: attach of thread 'Binder Thread #3' failed
02-04 20:37:13.216: DEBUG/dalvikvm(534): GC_CONCURRENT freed 102K, 71% free 297K/1024K, external 0K/0K, paused 1ms+1ms
02-04 20:37:13.216: DEBUG/dalvikvm(534): Debugger has detached; object registry had 1 entries
02-04 20:37:14.256: DEBUG/AndroidRuntime(544): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
02-04 20:37:14.256: DEBUG/AndroidRuntime(544): CheckJNI is ON
02-04 20:37:15.126: DEBUG/AndroidRuntime(544): Calling main entry com.android.commands.am.Am
02-04 20:37:15.176: INFO/ActivityManager(75): Force stopping package module.jakway.JournalEntry uid=10035
02-04 20:37:15.206: INFO/ActivityManager(75): Start proc module.jakway.JournalEntry for added application module.jakway.JournalEntry: pid=552 uid=10035 gids={1015}
02-04 20:37:15.876: WARN/TestGrouping(552): Invalid Package: '' could not be found or has no tests
02-04 20:37:15.976: INFO/ActivityManager(75): Force stopping package module.jakway.JournalEntry uid=10035
02-04 20:37:15.976: INFO/Process(75): Sending signal. PID: 552 SIG: 9
02-04 20:37:15.986: DEBUG/AndroidRuntime(544): Shutting down VM
02-04 20:37:16.016: DEBUG/dalvikvm(544): GC_CONCURRENT freed 103K, 71% free 299K/1024K, external 0K/0K, paused 1ms+4ms
02-04 20:37:16.036: INFO/AndroidRuntime(544): NOTE: attach of thread 'Binder Thread #3' failed
02-04 20:37:16.046: DEBUG/jdwp(544): Got wake-up signal, bailing out of select
02-04 20:37:16.046: DEBUG/dalvikvm(544): Debugger has detached; object registry had 1 entries
02-04 20:37:16.656: DEBUG/AndroidRuntime(563): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
02-04 20:37:16.665: DEBUG/AndroidRuntime(563): CheckJNI is ON
02-04 20:37:17.646: DEBUG/AndroidRuntime(563): Calling main entry com.android.commands.am.Am
02-04 20:37:17.716: INFO/ActivityManager(75): Force stopping package module.jakway.JournalEntry uid=10035
02-04 20:37:17.746: INFO/ActivityManager(75): Start proc module.jakway.JournalEntry for added application module.jakway.JournalEntry: pid=572 uid=10035 gids={1015}
02-04 20:37:18.606: WARN/TestGrouping(572): Invalid Package: '' could not be found or has no tests
02-04 20:37:18.826: INFO/ActivityManager(75): Force stopping package module.jakway.JournalEntry uid=10035
02-04 20:37:18.826: INFO/Process(75): Sending signal. PID: 572 SIG: 9
02-04 20:37:18.846: DEBUG/AndroidRuntime(563): Shutting down VM
02-04 20:37:18.906: INFO/AndroidRuntime(563): NOTE: attach of thread 'Binder Thread #4' failed
02-04 20:37:18.916: DEBUG/dalvikvm(563): GC_CONCURRENT freed 103K, 71% free 298K/1024K, external 0K/0K, paused 2ms+28ms
02-04 20:37:18.916: DEBUG/jdwp(563): Got wake-up signal, bailing out of select
02-04 20:37:18.926: DEBUG/dalvikvm(563): Debugger has detached; object registry had 1 entries

非常感谢!

3 个答案:

答案 0 :(得分:19)

Android将其测试框架基于JUnit 3,它不使用注释,但反射和测试方法名称应包含 test 前缀。

转到JUnit 3并从Eclipse运行测试Run As -> Android JUnit Test或从命令行使用am instrument

答案 1 :(得分:6)

尝试更改此内容:

public MainTest(Class activityClass) {
    super("module.jakway.JournalEntry", Module_JournalEntry.class);
    // TODO Auto-generated constructor stub
}

对此:

public MainTest() {
    super("module.jakway.JournalEntry", Module_JournalEntry.class);
    // TODO Auto-generated constructor stub
}

在这种情况下,构造函数应该没有参数。它是在添加测试用例构造函数部分的Hello, Testing教程示例中编写的。

答案 2 :(得分:2)

“Android测试API支持JUnit 3代码样式,但不支持JUnit 4” - http://developer.android.com/tools/testing/testing_android.html

1.更新您的测试以遵循JUnit 3标准


    //has to start with the word "test" for JUnit 3 to pick it up.
    public void testMyCase()
    {
      assertTrue(false);
    }

2.从测试项目中删除任何JUnit 4引用(右键单击项目 - &gt;属性 - &gt; java构建路径 - &gt;库(选项卡)