2011-02-23 5 views
1

Google의 CodePro Coverage 도구를 사용하여 Google AppEngine 프로젝트에서 단위 테스트 적용 범위를 측정하려고합니다. 그러나 테스트를 실행하면 다양한 ClassFormatError 예외가 발생합니다.Google App Engine 코드에서 Google CodePro Coverage를 사용하는 방법은 무엇입니까?

다른 사람들이 Google AppProine 프로젝트에서 작동하는 Google CodePro 적용 범위를 갖고 있습니까?

다음은 내가 추구하는 질문 라인입니다.
a) 여러 레벨의 바이트 코드 엔지니어링이 함께 작동하지 않습니다. 나는. CodePro는 GAE JPA 구현 (DataNucleus 계측기 영구 클래스)과 싸우고 있습니다.
B) 내 역할 여기

일부 RTFM 오류가 예외 :

java.lang.ClassFormatError: Invalid length 65525 in LocalVariableTable in class file 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
+0

JPA 고급 클래스에서만 오류가 발생합니까? JPA가 아닌 고급 클래스에서만 실행하면 어떻게됩니까? 그 결정은 a) 귀하의 문제인지 여부를 결정하는 한 가지 방법입니다. –

+0

지속성 클래스는 대부분의 문제를 일으 킵니다. 런타임 종속성을 가질 수있는 복잡한 클래스도 문제를 일으키고 있습니다. 매우 고립 된 클래스에 대한 몇몇 테스트는 잘 작동합니다. – byeo

+0

JSP가없는 GAE 프로젝트를 만들었습니다 (따라서 JPA 바이트 코드 엔지니어링이 필요하지 않습니다). 이 프로젝트에 대해 테스트를 실행하면 위의 문제가 발생하지 않았습니다. 나는 datanucleaus JPA enhancer를 실행하지 않는 특별한 빌드를 만드는 것을 조사 할 것입니다. 바이트 코드 계측을 사용하여 프로덕션 환경에 배포하면 안되기 때문에 장기적인 솔루션의 일부가됩니다. – byeo

답변

0

여기 내 자신의 질문에 대한 답변입니다,하지만 난 많이 그것을 좋아하지 않아.

완전히 새로운 Eclipse Project를 만들었고이 프로젝트에 CodePro를 설치했습니다. 이 커버리지 프로젝트에는 GAE 프로젝트 및 유닛 테스트 프로젝트의 소스 코드가 포함되었습니다. JUnitCore를 사용하여 유닛 테스트 프로젝트에서 JUnit TestCases를 호출하는 커버리지 프로젝트에서 보일러 플레이트 클래스를 만들었습니다.

GAE 프로젝트의 결과는 계측 된 프로젝트로 실행 한 번 이상 실행해야 표시됩니다. 그런 다음 서비스 실행 뷰는 해당 프로젝트에 대한 통계를 게시합니다.

정말 못 생겨서 CodePro에별로 감명받지 않았습니다. 그것은 Google 도구에 대한 파 아래에있어.

또한 커버리지 계측 작업을 수행했지만 codepro ant 작업을 살펴 ​​보았습니다. 그것은 instantiations CodePro 제품의 일부 였을 때 사용되었습니다.

필자는 단순히 EMMA (CodePro 기반)를 사용합니다. 장기간 자동화 된 빌드에서 생성되는 보험 보고서가 필요합니다. CodePro로는 불가능한 것.

+0

추후에 좀 더 나은 답변을 위해 올바른 답 진드기를 기쁜 마음으로 PS에 보내십시오! – byeo