我为一个库项目编写了一个测试用例类,我分别创建了这个测试用例项目。
当我尝试运行此测试项目时。控制台显示错误"Unable to find instrumentation target package: <with package name>"
,
我也在谷歌搜索解决方案,在他们提供的一些网站上检查AndroidManifestFile中的标签android:targetPackage属性。
我检查了清单,检测标签是否正确,它正确定位了libraryproject包。
任何人都可以帮忙,让我的testcase项目可以运行
答案 0 :(得分:24)
您必须创建和设置依赖于Library Project的Application Project,以便测试Library Project。引自official developer's guide:
测试图书馆计划
有两种建议的方法可以在库项目中设置代码和资源的测试:
您可以设置一个测试应用程序项目的测试项目 这取决于图书馆项目。然后,您可以添加测试 针对图书馆特定功能的项目。
您可以设置一个依赖于库的标准应用程序项目,并将检测项目放入该项目中。这使您可以创建一个包含测试/工具和要测试的代码的自包含项目。
Android库项目不是直接构建的,而是与主应用程序项目一起构建的。换句话说,您无法直接将其编译为自己的.apk并在Android设备上运行它。另一方面,在设备上安装app.apk和test.apk之后,通过运行测试项目应用程序(在Eclipse中运行“Run As ...”&gt;“Android JUnit Test”)进行检测测试,然后使用test.apk来操作app.apk--因此是测试名称的“instrumentation”部分。
<强>更新强>
请注意,如果您使用第二种方法,则可以创建测试项目测试库项目而无需创建第三个应用程序项目,因为测试项目本身也是常规应用程序项目。
答案 1 :(得分: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>
答案 2 :(得分:4)
在我的情况下,我使用gradle运行,只运行connectedInstrumentTest任务
./gradlew connectedInstrumentTest
我得到了“无法找到仪器信息”错误... 问题是我还需要在connectedInstrumentTest任务之前包含要执行的installDebug任务,如下所示:
./gradlew installDebug connectedInstrumentTest