3

我从https://android.googlesource.com/platform/frameworks/volley克隆了最新版本的 volley

我在 Eclipse 中导入它,并尝试运行测试项目,但我得到 ClassNotFoundException

java.lang.NoClassDefFoundError: com.android.volley.mock.WaitableQueue$MagicStopRequest
at com.android.volley.mock.WaitableQueue.<init>(WaitableQueue.java:31)
at com.android.volley.CacheDispatcherTest.setUp(CacheDispatcherTest.java:45)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1619)

如何运行这些测试?

谢谢你。

4

2 回答 2

0

Volley 框架 repo 支持基于 Ant 和 Gradle 的构建系统。使用 Gradle 构建系统运行测试非常简单。我确实短暂地尝试过使用 Ant 方法,但它并不那么简单,无论如何我更喜欢 Gradle。

您需要的第一件事是安装Gradle 1.10,这是 Volley 在撰写此答案时所需的版本。或者,您可以克隆这个镜像仓库,其中包括一些额外功能,例如 gradlew 支持(用于下载和使用正确版本的 Gradle 的 Gradle 引导实用程序)。

然后只需从项目根目录执行以下命令(根据您上面选择的选项使用 gradle 或 gradlew):

$> gradle clean connectedCheck

这将运行完整的任务,包括测试。它应该在build/reports/instrumentedTests/connected/index.html相对于项目根目录生成一个 HTML 测试报告。

于 2014-03-14T22:59:13.510 回答
-1

我发现是开始的。

我编写了这个测试项目,并从 volley 库中导入 com.android.volley 和 com.android.volley.toolbox。它有效^_^

public class MainActivity extends Activity {

protected static final String TAG = "com.gyh.myvolleytest";

private static Response.ErrorListener createErrorListener() {
    return new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d(TAG, "Error Response code: " + error.getMessage());
        }
    };
}
private static Response.Listener<String> createSuccessListener() {
    return new Response.Listener<String>() {
        @Override
        public void onResponse(String response) {
            // TODO parse response
            String string = response.toString();
            Log.d(TAG, "string :"+string);
        }
    };
}

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

    //it is the only button in the layout ,click to log the result
public void click(View view) {
    RequestQueue queue = Volley.newRequestQueue(this);

    String url="http://192.168.1.108:8080/httptest/servlet/mainservlet?name=stack&age=23";

    StringRequest request = new StringRequest(
            Request.Method.GET,
            url,
            createSuccessListener(),
            createErrorListener());
    queue.add(request);
    queue.start();
}

}

让我知道会发生什么^_^

于 2013-07-02T07:37:51.247 回答