2

実行しようとしているRobotiumテストスイートがありますが、何らかの理由で最初のテストのみを実行し、その後フリーズします。プログラムを数分間実行させましたが、「テスト実行中」と表示されているだけです。これが私のコードです:

import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;

@SuppressWarnings("unchecked")
public class ODPRobotiumTest extends ActivityInstrumentationTestCase2 {

    private static final String TARGET_PACKAGE_ID = "com.gravitymobile.app.hornbill";
    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.vzw.odp.LaunchActivity";

    private static Class<?>launcherActivityClass;

    static{
        try{
            launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
        } catch (ClassNotFoundException e){
            throw new RuntimeException(e);
        }
    }

    @SuppressWarnings({ "unchecked", "deprecation" })
    public ODPRobotiumTest() throws ClassNotFoundException{
        super(TARGET_PACKAGE_ID, launcherActivityClass);
    }

    private Solo solo;

    @Override
    protected void setUp() throws Exception{
        solo = new Solo(getInstrumentation(), getActivity());
    }

    public void testLine1(){


        solo.searchText("Easy to Find");        

    }
    public void testLine2(){



        solo.searchText("Hassle-Free");


    }
    public void testLine3(){




        solo.searchText("Trust");


    }
    public void testLine4(){

        solo.searchText("Verizon Curated Wallpaper");


    }
    public void testLine5(){

        solo.searchText("Taco's");

    }
    @Override
    public void tearDown() throws Exception{
        try{
            solo.finalize();
        }catch(Throwable e){
            e.printStackTrace();
        }
        getActivity().finish();
        super.tearDown();
    }
}

どんな助けでも素晴らしいでしょう。ありがとう!

これがJUnitです:

ここに画像の説明を入力してください

4

3 に答える 3

1

スイートの一部として実行するには、テストに注釈を付ける必要があります。試す:

@Smoke
public void testLine1(){
    solo.searchText("Easy to Find");  
}

これらのテストでは何も主張していないので、まだあまり役に立たないことに注意してください。コードが適切に機能していることを確認するには、アサーションを追加する必要があります

于 2012-06-18T23:05:46.947 に答える
1

だから私は答えを見つけました:solo.finishOpenedActivities();tearDown()メソッドに含める必要があります。これにより、テストが「終了」し、新しいテストが開始されます。うわー!

助けてくれたみんな、ありがとう!

于 2012-06-19T01:04:37.750 に答える
1

テストにアサーションがありません (これが問題になるとは思いませんが)。実行中に Junit パネルには何が表示されますか?

または試してください:

 public void testLine1(){
    assertTrue(solo.searchText("Easy to Find"));        
 }
于 2012-06-18T22:59:59.643 に答える