Java 我的Junit测试没有';跑不动

Java 我的Junit测试没有';跑不动,java,android,junit,Java,Android,Junit,我不熟悉Java、Android和JUnit。我想学习如何为Android应用程序编写JUnit测试。为此,我有一个非常简单的Android应用程序(2个活动,2个按钮,每个按钮指向另一个活动)。我想测试一下这个按钮。此应用程序在我的手机上插入电源后运行良好。我一直在查看SDK中提供的示例,并尝试对其进行模拟 我的问题是,当我右键单击我的测试项目,并选择RunAs->AndroidJUnit test时,什么都没有发生。我不知道为什么 我的测试代码 package com.example.two

我不熟悉Java、Android和JUnit。我想学习如何为Android应用程序编写JUnit测试。为此,我有一个非常简单的Android应用程序(2个活动,2个按钮,每个按钮指向另一个活动)。我想测试一下这个按钮。此应用程序在我的手机上插入电源后运行良好。我一直在查看SDK中提供的示例,并尝试对其进行模拟

我的问题是,当我右键单击我的测试项目,并选择RunAs->AndroidJUnit test时,什么都没有发生。我不知道为什么

我的测试代码

package com.example.twoactivities.test;

import android.app.Instrumentation.ActivityMonitor;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.SmallTest;
import android.widget.Button;

import com.example.twoactivities.MainActivity;
import com.example.twoactivities.MainActivity2;

public class ClickButton extends ActivityInstrumentationTestCase2<MainActivity> {

    private Button mButton2;
    private long TIMEOUT_IN_MS = 100000;

    public ClickButton() {
        super(MainActivity.class);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        final MainActivity a = getActivity();
        // ensure a valid handle to the activity has been returned
        assertNotNull(a);
    }

    @SmallTest
    public void click(){
        // Set up an ActivityMonitor
        ActivityMonitor activityMonitor = getInstrumentation().addMonitor(MainActivity2.class.getName(), null, false);

        //check if button is enabled
        assertTrue("button is enabled", mButton2.isEnabled());
        //click button
        mButton2.performClick();

        MainActivity2 MainActivity2 = (MainActivity2) activityMonitor.waitForActivityWithTimeout(TIMEOUT_IN_MS );
        assertNotNull("MainActivity2 is null", MainActivity2);
//      assertEquals("Monitor for MainActivity2 has not been called", 1, activityMonitor.getHits());
//      assertEquals("Activity is of wrong type", MainActivity2.class, MainActivity2.getClass());

        // Remove the ActivityMonitor
        getInstrumentation().removeMonitor(activityMonitor);

    }

//      public void tearDown() {
//      }

}
我申请的活动2

package com.example.twoactivities;

import com.example.twoactivities.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends Activity {

     @Override
       protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
       }
       public void activity2(View view){
          Intent intent = new Intent(this,com.example.twoactivities.MainActivity2.class);
          startActivity(intent);
       }
}
package com.example.twoactivities;

import com.example.twoactivities.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

    public class MainActivity2 extends Activity {

           @Override
           protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main2);
           }

           public void activity1(View view){
              Intent intent = new Intent(this,com.example.twoactivities.MainActivity.class);
              startActivity(intent);
           }
}
知道为什么我的测试课不运行吗

谢谢,
Stephanie

您必须右键单击测试本身,而不是项目


根据Android测试,API支持JUnit3代码风格,但不支持JUnit4。尝试命名您的测试方法
testClick

junit.framework.AssertionFailedError:在android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)的android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)的android.test.InstrumentationTestRunner.onStart中找不到任何测试(InstrumentationTestRunner.java:554)在android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1840)这里是我得到的。是的,完全是一个3对4的问题。谢谢你的帮助!