27

我为一个库项目编写了一个测试用例类,我单独创建了这个测试用例项目。

当我试图运行这个测试项目时,控制台显示错误"Unable to find instrumentation target package: <with package name>"

我也在谷歌上搜索解决方案,在一些网站中,他们检查了 AndroidManifestFile 中的标签 android:targetPackage 属性。

我检查了清单,仪表标记是正确的,它正确地定位了 libraryproject 包。

任何人都可以帮忙,使我的库测试用例项目可运行

4

3 回答 3

24

您必须创建和设置一个依赖于库项目的应用程序项目,以便测试库项目。引用官方开发者指南

测试图书馆项目

有两种推荐的方法来设置库项目中的代码和资源测试:

  • 您可以设置一个测试项目来检测依赖于库项目的应用程序项目。然后,您可以将测试添加到项目中以获取特定于库的功能。

  • 您可以设置一个依赖于库的标准应用程序项目,并将仪器放在该项目中。这使您可以创建一个独立的项目,其中包含测试/仪器和要测试的代码。

Android 库项目不是直接构建的,而是与主应用程序项目一起构建的。换句话说,你不能直接将它编译成自己的 .apk 并在 Android 设备上运行。另一方面,仪器测试通过在设备上安装 app.apk 和 test.apk 之后运行测试项目应用程序(Eclipse 中的“Run As...”->“Android JUnit Test”),然后使用 test .apk 来操作 app.apk——因此是测试名称的“仪器”部分。


更新:

请注意,如果您使用第二种方法,您可以创建一个测试项目测试库项目,而无需创建第三个应用程序项目,因为测试项目本身也是一个常规应用程序项目。

于 2012-04-16T11:11:10.880 回答
11

创建android测试项目时记得设置好目标包

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test" <-------------------
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk android:minSdkVersion="8" />
    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.example.test" >  <-----------------
    </instrumentation>
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" />
        <activity android:name="TestActivity" />
    </application>
</manifest>
于 2013-04-09T13:49:20.927 回答
6

就我而言,我正在使用 gradle 运行,只运行 connectedInstrumentTest 任务

./gradlew connectedInstrumentTest

我收到“无法找到仪器信息”错误...问题是我还需要在 connectedInstrumentTest 任务之前包含要执行的 installDebug 任务,如下所示:

./gradlew installDebug connectedInstrumentTest
于 2014-04-18T10:15:40.070 回答