Skip to content

Instantly share code, notes, and snippets.

@anyone-can-test
Last active December 17, 2015 00:17

준비

개인 환경

기본

jenkins 버전을 변경함 (pom.xml 수정, 주의: commit 하지 않아야 함) 이유는 모르겠으나 기본 버전에서는 junit 플러그인이 동작하지 않음 org.jenkins-ci.plugins plugin 1.638

실행 (jenkins test)

  • mvn hpi:run -Djetty.port=8090 -Pjenkins

url

https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial#Plugintutorial-SettingUpEnvironment ~/.m2/settings.xml -> 정확한 용도는 더 파악해야 함

jenkins ci(github와 연동되는)에서의 명령어

  • Executing Maven: -B -f /scratch/jenkins/workspace/plugins/junit-plugin/pom.xml -s /tmp/settings8748521157496354313.xml -gs /tmp/global-settings4247066263993376781.xml clean

install -e -U -Dignore.random.failures -Dfindbugs.failOnError=false -Dmaven.findbugs.failure.strict=false findbugs:findbugs

mvn test (pom.xml 수정 없이) -> 리눅스에서는 잘 된다. -> Windows에서는 뭔가 실패가 있다.

런타임시 필요한 플러그인을 dependency (pom.xml)에 추가한다.

디버깅

소스 변경 시 자동 reload 하기

디버그 모드로 실행해야 한다.

  • 코드 변경 시 자동으로 반영된다.

mvnDebug hpi:run -Djetty.port=8090 -Pjenkins => 실패

$ export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n" $ mvn hpi:run => 디버그 모드로 동작하지 않음

==> 어느 방법으로든 실패함

소스 분석

History for [test method] 페이지

-> resource/.../tasks/junit/CaseResult/list.jelly

/junit/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body.jelly

-> Test Result 링크 클릭하면 나오는 첫번째 페이지

CaseResult.java

-> 하나의 테스트 실패를 나타냄 -> jelly에서 사용할 함수 추가 시 명시적으로 컴파일 다시 해야 함

.jelly 에서 영어 string은 코드에 직접 입력한다.

-> ${%Short Error Message} "Short Error Message" 가 영어 string 이다.

이슈

FATAL: class hudson.tasks.junit.JUnitResultArchiver is missing its descriptor java.lang.AssertionError: class hudson.tasks.junit.JUnitResultArchiver is missing its descriptor -> mvn clean compile 후 다시 실행 -> 근본적인 원인을 찾아야 한다.

jelly, javascript

  • javascript에서 x x x . {xxx}가 먼저 결정되어 static 이 되는 것 같다. 즉 javascript를 통해서 런타임으로 jelly 객체를 호출할 수 없다.

기타

exported 는 rest api에 사용되는 것임

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment