2

我正在尝试使用机器人运行以下 Android JUnit3 测试:

import android.test.ActivityInstrumentationTestCase2;
import com.package.sample.MyActivityClass;
import com.jayway.android.robotium.solo.Solo;

public class TestSample extends ActivityInstrumentationTestCase2<MyActivityClass> {
    private Solo solo;
    public TestSample() {
        super("com.package.sample", MyActivityClass.class);
    }

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

    public void clickbutton1() throws Exception{
        solo.clickOnButton("abc");
        solo.setActivityOrientation(Solo.LANDSCAPE);
        assertTrue(solo.searchText("load"));
    }

    @Override
    protected void tearDown() throws Exception{
        solo.finishOpenedActivities();
    }
}

JUnit 探索显示 0/0 测试运行。调试器没有命中此处提到的任何代码路径,并且控制台输出“测试运行完成”??:

Uploading MyAppTest.apk onto device 'emulator-5554'
Installing MyAppTest.apk...
Success!
Project dependency found, installing: MyApp
Uploading MyApp.apk onto device 'emulator-5554'
Installing MyApp.apk...
Success!
Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5554
Collecting test information
Sending test information to Eclipse
Running tests...
Test run finished

有谁知道出了什么问题?我虔诚地遵循了机器人教程中的所有步骤。我知道有很多关于这个的问题,但我已经处理了所有的答案。

Robotium 也有与 JUnit4 类似的问题

4

2 回答 2

3

是的,我知道出了什么问题。

为了运行您的测试,您需要以test. 所以你的代码应该是这样的:

import android.test.ActivityInstrumentationTestCase2;
import com.package.sample.MyActivityClass;
import com.jayway.android.robotium.solo.Solo;

public class TestSample extends ActivityInstrumentationTestCase2<MyActivityClass> {
    private Solo solo;
    public TestSample() {
        super("com.package.sample", MyActivityClass.class);
    }

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

    //the test methods MUST begin with test...
    public void testClickbutton1() throws Exception{
        solo.clickOnButton("abc");
        solo.setActivityOrientation(Solo.LANDSCAPE);
        assertTrue(solo.searchText("load"));
    }

    @Override
    protected void tearDown() throws Exception{
        solo.finishOpenedActivities();
    }
}

不久前我遇到了类似的问题,而且 Robotium 没有最好的文档。我希望这可以帮助你 :)

于 2012-07-11T23:43:20.823 回答
1

我按照你说的做了一切,但 0/0 测试仍然出错。我找到了与构造函数有关的解决方案:

// I DELETED THIS CONSTRUCTOR
public TestHomeScreenTest(String pkg, Class<ScreenSlidePagerActivity> activityClass) {
    super(pkg, activityClass);
}


//GOOD SOLUTION:    
public TestHomeScreenTest() {
    super("com.dolphin.homescreen", ScreenSlidePagerActivity.class);
}

现在很糟糕!:)

于 2014-05-11T14:28:56.847 回答