我的问题是:如何为Android库创建Android 独立测试项目?
我有我的Android 库(在项目设置中标记为"Library")和一个包含我的JUnit测试类的Android项目.该测试项目(在"Android"的项目设置中)正确引用了Android库.
我的库源代码位于包中com.mayastudios.我的所有测试用例也都位于同一个包中(但在不同的项目中).所以基本上我有这样的事情:
+- MyLibraryProject
+- src
+- com/mayastudios/MyClass.java
+- AndroidManifest.xml
+- ...
+- MyTestProject (references MyLibraryProject)
+- test
+- com/mayastudios/MyClassTests.java
+- AndroidManifest.xml
+- ...
Run Code Online (Sandbox Code Playgroud)
这是测试项目的Android清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.spatialite.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.mayastudios" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application android:label="Spatialite-NewApi-UnitTests">
<uses-library android:name="android.test.runner" />
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
但是,当我运行测试项目时(从带有ADT的Eclipse,使用"Run As - > Android JUnit Test"),我收到以下错误:
Unable to find instrumentation target package: com.mayastudios …Run Code Online (Sandbox Code Playgroud) 我正在开发一个用于与Web服务交互的Android库,我正在尝试开发一些单元测试以检查其工作情况.
当我运行指定的测试时,我收到以下错误:
[2012-07-19 15:12:09 - MMWebAPI] Could not find MMWebAPI.apk!
[2012-07-19 15:12:10 - MMWebAPITest] Test run failed: Unable to find instrumentation target package: com.webapi.mmwebapi
Run Code Online (Sandbox Code Playgroud)
哪个MMWebAPI是图书馆,而不是一个.apk.
我正在寻找单元测试Android项目的权威指南,具体来说,什么可以和不可以测试(在这种情况下,网络操作是库的核心),一步一步的教程也将是一个很大的帮助.
我上课了:
public class WebReader implements IWebReader {
HttpClient client;
public WebReader() {
client = new DefaultHttpClient();
}
public WebReader(HttpClient httpClient) {
client = httpClient;
}
/**
* Reads the web resource at the specified path with the params given.
* @param path Path of the resource to be read.
* @param params Parameters needed to be transferred to the server using POST method.
* @param compression If it's needed to use compression. Default is <b>true</b>.
* @return <p>Returns the string …Run Code Online (Sandbox Code Playgroud)