0

我创建了一个简单的活动,其中有 2 个用于提交和取消的按钮。我只想通过使用 UI Automator 测试来测试这个项目。所以我创建了一个android测试项目并创建了一个类。我让这个测试类扩展UiAutomatorTestCase。我还添加了 uiautomator.jar、android.jar 以及 junit3 库。但是当我运行测试用例时,它给了我一个关于

TestSuiteConstruction 失败和 java.lang.RuntimeException。

但是我添加了构造函数,但由于它不带任何参数,所以我无法添加任何参数。这是我的测试用例代码。请尽快解决此错误。你能告诉我任何我没有在我的项目中添加的东西吗?

package com.example.automatorapp.test;

import android.test.suitebuilder.TestSuiteBuilder;
import android.util.Log;

import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;
import com.example.automatorapp.MainActivity;

public class testDemo1 extends UiAutomatorTestCase
{
    public testDemo1()
    {

    }

    public void testdemo() throws UiObjectNotFoundException
    {   
        getUiDevice().pressHome();
        Log.e("how r u","hello");
    }
}
4

1 回答 1

0

尝试更改类的名称,使其不“test”开头并删除构造函数。按照惯例,类的名称以大写字母开头,您的则以小写的“t”开头。同样,按照惯例,JUnit3 测试类将“测试”一词放在末尾。http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/TestCase.html因此,在您的示例中,testdemo1 的类名将是 Demo1Test 行(记住文件名需要与类名匹配)。

然而,令我惊讶的是,您的代码的稍微修改版本在我的机器上运行。这是运行正常的代码。

package com.example.automatorapp.test;

import android.util.Log;
import com.android.uiautomator.core.UiObjectNotFoundException;
import com.android.uiautomator.testrunner.UiAutomatorTestCase;

public class testDemo1 extends UiAutomatorTestCase
{
    public testDemo1()
    {
    }
    public void testdemo() throws UiObjectNotFoundException
    {
        getUiDevice().pressHome();
        Log.e("how r u","hello");
    }
}

我也收到了 Android 日志中的日志消息。

E/how r u (24667): hello

因此,您的项目设置或构建环境可能存在一些问题。据我所知,这个项目(用于测试)应该独立于您要测试的应用程序的代码或项目。但是,您有一个要测试的应用程序的导入。

import com.example.automatorapp.MainActivity;

您现在已经发布了很多与 UI Automator 相关的问题,也许您可​​以总结一下您目前的进展。例如,您是否曾经成功运行过 UI Automator 测试?

PS:我希望看到一些反馈来回答你之前的问题。没有您的反馈,很难知道您的前进方向以及答案是否与您相关或对您有用。

于 2013-03-28T08:31:24.987 回答