2012. 2. 16. 00:42
emma 와 ant 를 이용하여 코드 커버리지 측정하기
2012. 2. 16. 00:42 in 3. Implementation/Android
아주 급하게 정리하였습니다. 좀더 정리가 필요한 것 같지만 일단은 여기서 마무리 하겠습니다.
ant coverage 하면 에러가 발생했음
테스트 대상 프로젝트(원본프로젝트)에 테스트 프로젝트에 생성된 build.xml 과 local.properties 파일을 복사함
D:\Android\Workspace\HelloActivity_test>adb shell am instrument -w -e coverage true com.example.android.helloactivity.tests/android.test.InstrumentationTestRunner
com.example.android.helloactivity.HelloActivityTest:.
Error: Failed to generate emma coverage. Is emma jar on classpath?
아래 명령 실행으로 성공함.
D:\Android\Workspace\HelloActivity_test>adb shell am instrument -w -e emma true
com.example.android.helloactivity.tests/android.test.InstrumentationTestRunner
D:\Android\Workspace>android create test-project --help
Error: Flag '--help' is not valid for 'create test-project'.
Usage:
android [global options] create test-project [action options]
Global options:
-h --help : Help on a specific command.
-v --verbose : Verbose mode, shows errors, warnings and all messages.
-s --silent : Silent mode, shows errors only.
Action "create test-project":
Creates a new Android project for a test package.
Options:
-p --path : The new project's directory. [required]
-n --name : Project name.
-m --main : Path to directory of the app under test, relative to the test
project directory. [required]
D:\Android\Workspace>android create test-project -p HelloActivity_test -m ../HelloActivity
ant 설치
sdk/tools/ant 밑에 build.xml 을 살펴보면 emma 빌드가 있어서 시도해봄
ant emma
성공
그리고
ant debug
성공
그리고 test project 가서
ant emma debug install test
했는데 마지막에 실패함.
다시 시도해 봄
원본 프로젝트로 가서
android update project -p HelloActivity
를 입력
ant debug
성공 후, test project 로 가서
ant emma debug install test
해서 모두 성공했으나
[exec] remote object '/data/data/com.example.android.helloactivity/coverage
.ec' does not exist
라는 메시지와 함께 마지막에 안타깝게 실패
위에 것은 성공이 아닌듯 함.
ant emma debug install test
를 성공시켜야 하는데
test 프로젝트에 있는 coverage.em 파일을
adb push coverage.em /sdcard/coverage.ec
로 강제로 밀어 넣고,
android-sdk\tools\ant\build.xml 을
<!--<property name="emma.dump.file"
value="/data/data/${tested.manifest.package}/coverage.ec" />-->
<property name="emma.dump.file"
value="/sdcard/coverage.ec" />
이렇게 수정하고 난 후
D:\Android\Workspace\HelloActivity_test>D:\Android\tools\apache-ant-1.8.2\bin\an
t emma debug install test
이렇게 했더니 성공함.
참고