2011-02-05 129 views
9

问题不是测试失败,而是他们根本不运行。 也就是说,控制台告诉我他们跑了,但我完全没有看到他们的结果。安卓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和活动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 

非常感谢!

回答

19

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

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

+1

感谢帮助我很多 – Prime 2011-02-06 06:28:06

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教程示例下的添加测试用例构造函数部分。

+0

这为我做谢谢! – gilsaints88 2013-10-01 05:27:38

2

“Android的测试API支持JUnit 3中的代码风格,而不是JUnit 4中” - http://developer.android.com/tools/testing/testing_android.html

1.Update测试遵循的JUnit 3个标准

 

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

2.取出任何JUnit 4个中引用从测试项目(右键单击项目 - >属性 - > Java构建路径 - >库(标签)