Android 라이브러리 프로젝트를 테스트하는 방법
나는 유틸리티 클래스 (활동 없음) 만 포함하는 Android Bitmap 클래스 (AndroindLib라고 부름)를 기반으로 Android 라이브러리 프로젝트를 작성하고 있습니다. Android JUnit을 사용하여 테스트하려고했지만 AnroidLib.apk를 찾을 수 없다고 계속 불평합니다.
단위 테스트 Android 라이브러리 프로젝트에 올바른 방법은 무엇입니까?
문서 인용 :
"라이브러리 프로젝트의 코드 및 리소스에 대한 테스트를 설정하는 권장 방법은 두 가지입니다.
라이브러리 프로젝트에 의존하는 애플리케이션 프로젝트를 계측하는 테스트 프로젝트를 설정할 수 있습니다. 그런 다음 라이브러리 별 기능에 대한 테스트를 프로젝트에 추가 할 수 있습니다.
라이브러리에 의존하는 표준 애플리케이션 프로젝트를 설정하고 해당 프로젝트에 계측을 배치 할 수 있습니다. 이를 통해 테스트 / 계측 및 테스트 할 코드를 모두 포함하는 자체 포함 된 프로젝트를 만들 수 있습니다. "
테스트 프로젝트에서 라이브러리의 패키지와 동일하도록 패키지 이름을 변경하면됩니다. 예를 들어, 패키지가 "com.example.lib"
. 라이브러리를 대상으로하는 테스트 프로젝트를 만듭니다. 매니페스트 파일에서 package="com.example.lib.test"
, 및 targetPackage="com.example.lib"
. 패키지를 "com.example.lib.test"에서 "com.example.lib"로 변경하십시오 ( targetPackage
그대로 두십시오).
또한, 라이브러리가 테스트 프로젝트에 참조되어 있는지 확인 하지 Java 빌드 경로에 있지만, 일반적인 안드로이드 라이브러리로 : 이클립스에가있는 라이브러리로 표시되어야 Project->Properties->Android
탭하지만, 하지 에 Project->Properties->Java Build Path
탭을 선택합니다.
그런 다음 테스트를 실행하십시오.
http://www.paulbutcher.com/2010/09/android-library-project-with-tests-step-by-step/ 은 CommonsWare의 답변에서 두 번째 제안을 구현하는 데 필요한 프로세스를 설명하는 데 도움이됩니다.
당 문서 :
라이브러리 모듈 테스트는 앱 테스트와 동일합니다. 가장 큰 차이점은 라이브러리와 해당 종속성이 테스트 APK의 종속성으로 자동 포함된다는 것입니다. 즉, 테스트 APK에는 자체 코드뿐만 아니라 라이브러리의 AAR 및 모든 종속성도 포함됩니다. 별도의 '테스트중인 앱'이 없기 때문에 androidTest 작업은 테스트 APK 만 설치 (및 제거)합니다. 여러 매니페스트 파일을 병합 할 때 Gradle은 기본 우선 순위를 따르고 라이브러리의 매니페스트를 테스트 APK의 기본 매니페스트에 병합합니다.
참고 : 이 솔루션은 Eclipse Indigo (3.8.2) 사용을 기반으로하며 기본 원칙은 동일하지만 다른 IDE에 대해 약간 다르게 구현해야 할 수 있습니다.
비슷한 문제가 있었고 다음 작업이 항상 작동한다는 것을 알았습니다.
( 참고 :이 지침은 처음부터 새 프로젝트 그룹을 빌드하기위한 것입니다. 프로젝트 그룹의 일부를 이미 빌드 한 경우 동일한 방식으로 연결되도록 프로젝트를 수정해야 할 수 있습니다. )
- 생성 중에 "Is Library"체크 박스를 선택하여 새 Android 라이브러리 프로젝트를 생성합니다. (예 : "RemingtonAndroidTools"라는 Android 프로젝트).
- Android 라이브러리 프로젝트를 빌드하고 bin 폴더에 jar 파일이 생성되었는지 확인합니다. (예 : "RemingtonAndroidTools.jar"라는 jar 파일)
- Android 테스트 앱으로 사용할 Android 앱을 테스트하기 위해 빈 Android 프로젝트를 만듭니다. (예 : "RemingtonAndroidToolsTestApp"이라는 Android 프로젝트). 테스트를 위해 추가해야하는 것이 없으면 Android 테스트 앱 프로젝트의 소스 코드 나 리소스를 수정할 필요가 없습니다. Android 테스트 앱 프로젝트를 수정하지 않고도 많은 것을 테스트 할 수 있습니다. Android Test App 프로젝트는 Android 라이브러리 프로젝트와 Android Junit 프로젝트를 연결하여 Android Junit을 통해 Android 라이브러리 프로젝트를 테스트 할 수 있도록합니다.
- Android 테스트 앱 프로젝트 (이 예에서는 "RemingtonAndroidToolsTestApp")에 대한 Java 빌드 경로의 라이브러리 탭으로 이동합니다.
- "Add Jars ..."버튼을 통해 Android 라이브러리 프로젝트 (이 예에서는 "RemingtonAndroidTools")의 jar 파일 (이 예에서는 "RemingtonAndroidTools.jar")을 추가합니다.
- Android 라이브러리 테스터 역할을 할 새 Android 테스트 프로젝트 (예 : 'RemingtonAndroidToolsTester')를 만들고 Android 테스트 앱 프로젝트 (이 예에서는 'RemingtonAndroidToolsTestApp')를 대상으로 선택합니다.
- Android 라이브러리 테스터 프로젝트 (이 예에서는 "RemingtonAndroidToolsTester")에 대한 Java 빌드 경로의 라이브러리 탭으로 이동합니다.
- "Add Jars ..."버튼을 통해 Android 라이브러리 프로젝트 (이 예에서는 "RemingtonAndroidTools")의 jar 파일 (이 예에서는 "RemingtonAndroidTools.jar")을 추가합니다.
- Android Library Tester 프로젝트에서 Android 패키지의 마지막 폴더 (예 : "danny.remington.remington_android_tools_test_app.test")를 찾고 ActivityInstrumentationTestCase2에서 상속되는 테스트 클래스 (예 : "MainActivityTest")를 추가합니다.
- Android 테스트 앱 (이 예에서는 'RemingtonAndroidToolsTestApp')의 활동 (예 : 'TestActivity')을 ActivityInstrumentationTestCase2의 매개 변수로 사용하도록 테스트 클래스 (이 예에서는 "TestActivityTest")를 편집합니다.
- 테스트 클래스 (이 예에서는 "TestActivityTest")를 편집하고 super (Class)를 호출하고 Android 테스트 앱의 클래스 (예 : "TestActivity.class")를 전달하는 기본 생성자를 만듭니다.
다음과 유사한 3 개의 프로젝트 (Android 라이브러리, Android 테스트 앱, Android 라이브러리 테스터)가 있어야합니다.
다음과 유사한 Android 라이브러리를 테스트하기위한 클래스로 끝나야합니다.
package danny.remington.remington_android_tools_test_app.test;
import android.test.ActivityInstrumentationTestCase2;
import danny.remington.remington_android_tools_test_app.TestActivity;
/**
*
*/
public class TestActivityTest extends
ActivityInstrumentationTestCase2<TestActivity> {
public TestActivityTest() {
super(TestActivity.class);
}
}
You can then add any test that you want. You will not need to reference the Android Test App ("RemingtonAndroidToolsTestApp" in this example) further to run your tests unless they require access to an Android specific component (like the Assets folder, for example). If you need to access any Android specific components you can do so by modifying the Android Test App ("RemingtonAndroidToolsTestApp" in this example) and then referencing it via the instrumentation provided by the standard Android Junit API. (You can read more about that here: http://developer.android.com/tools/testing/testing_android.html)
If your ulitiy classes do not depend on any android specific code, you can just use standard JUnit unit tests. No need to use the Android versions.
참고 URL : https://stackoverflow.com/questions/3603657/how-to-test-an-android-library-project
'Programing' 카테고리의 다른 글
Perl 배열을 반복하는 가장 좋은 방법 (0) | 2020.08.31 |
---|---|
Timertask 또는 핸들러 (0) | 2020.08.31 |
Perl 어레이를 인쇄하는 쉬운 방법? (0) | 2020.08.30 |
PHP에서 현재 URL 경로 가져 오기 (0) | 2020.08.30 |
반복기를 사용하여 벡터를 탐색하는 방법은 무엇입니까? (0) | 2020.08.30 |