내 질문 : 독립 실행 형 Android 라이브러리 용 테스트 프로젝트를 만들려면 어떻게해야합니까?Android 라이브러리 프로젝트 용 독립 실행 형 테스트 프로젝트
나는 내 JUnit 테스트 클래스를 포함하는 안드로이드 프로젝트 (프로젝트 설정에서 "라이브러리"로 표시됨) 내 안드로이드 라이브러리 있어요. 테스트 프로젝트는 Android 라이브러리 ("Android"아래의 프로젝트 설정에서)를 올바르게 참조합니다.
내 라이브러리 소스 코드는 com.mayastudios
패키지에 있습니다. 모든 테스트 케이스는 동일한 패키지에 있지만 다른 프로젝트에도 있습니다. 내가 ADT 이클립스에서합니다 (테스트 프로젝트를 실행할 때
<?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>
사용, 그러나 :
+- MyLibraryProject
+- src
+- com/mayastudios/MyClass.java
+- AndroidManifest.xml
+- ...
+- MyTestProject (references MyLibraryProject)
+- test
+- com/mayastudios/MyClassTests.java
+- AndroidManifest.xml
+- ...
여기 테스트 프로젝트의 안드로이드 매니페스트의 : 그러니까 기본적으로 나는 이런 식으로 뭔가를 "Run As -> Android JUnit Test") 다음 오류가 발생합니다.
Unable to find instrumentation target package: com.mayastudios
mplete 콘솔 로그 :
[2012-04-24 17:24:20 - spatialite-test] Android Launch!
[2012-04-24 17:24:20 - spatialite-test] adb is running normally.
[2012-04-24 17:24:20 - spatialite-test] Performing android.test.InstrumentationTestRunner JUnit launch
[2012-04-24 17:24:20 - spatialite-test] Automatic Target Mode: using device '3732FBC2711300EC'
[2012-04-24 17:24:20 - spatialite-test] Uploading spatialite-test.apk onto device '3732FBC2711300EC'
[2012-04-24 17:24:20 - spatialite-test] Installing spatialite-test.apk...
[2012-04-24 17:24:22 - spatialite-test] Success!
[2012-04-24 17:24:22 - spatialite-test] Launching instrumentation android.test.InstrumentationTestRunner on device 3732FBC2711300EC
[2012-04-24 17:24:22 - spatialite-test] Collecting test information
[2012-04-24 17:24:23 - spatialite-test] Test run failed: Unable to find instrumentation target package: com.mayastudios
나는 작동하지 않았다 매니페스트에서 <instrumentation>
태그를 제거하기 위해 노력했다.
내가 지금까지이 작업을 얻는 유일한 방법은 기본 Android 프로젝트 (활동 포함)를 만들고 테스트 프로젝트에서 참조하고이 기본 Android 프로젝트의 패키지 이름을 <instrumentation>
아래 targetPackage
으로 사용하는 것입니다. 그러나 그것은 내가 원하는 것이 아닙니다. 독립 실행 형 테스트 프로젝트가 필요합니다.
제안 사항?
InstrumentationTestRunner는 콘크리트 apk를 타겟팅해야하지만 라이브러리 프로젝트 자체는 apk로 내보낼 수 없습니다. 자세한 내용은 [여기] (http://stackoverflow.com/questions/10172636/unable-to-find-instrumentation-target-package-com-xyz/10173034#10173034)에서 설명했습니다. – yorkw
예, 알겠습니다. 나는 그저 test.apk가 장치에 설치되어 있기 때문에 자체적으로 실행할 수 있다고 생각했습니다. –
예상대로 작동합니다. 아래 내 대답을 참조하십시오. –