====== 젠킨스: Continuous Integration Tool ====== * 예제: ossi_blinky * 내용: LED 를 제어하는 모듈의 유닛테스트 -------------- ===== 유닛 테스트 성공 ===== http://donghee8.com:8080/job/ossi_blinky/3/console 성공했을때 콘솔창에 나오는 결과 Started by user anonymous Building in workspace /var/lib/jenkins/jobs/ossi_blinky/workspace [workspace] $ /bin/sh -xe /tmp/hudson8211951686732526962.sh + cd /home/donghee/work/embedded/ossi/spike + rake test:all (in /home/donghee/Dropbox/work/embedded/ossi/spike) Test 'test_light.c' ------------------- Generating runner for test_light.c... Compiling test_light_runner.c... Compiling test_light.c... Linking test_light.out... Running test_light.out... ------------------------- OVERALL UNIT TEST SUMMARY ------------------------- TESTED: 4 PASSED: 4 FAILED: 0 IGNORED: 0 Finished: SUCCESS ===== 유닛 테스트 실패 ===== http://donghee8.com:8080/job/ossi_blinky/4/console 유닛 테스트 실패했을때 콘솔에 나오는 내용 Started by user anonymous Building in workspace /var/lib/jenkins/jobs/ossi_blinky/workspace [workspace] $ /bin/sh -xe /tmp/hudson1718203080667136732.sh + cd /home/donghee/work/embedded/ossi/spike + rake test:all (in /home/donghee/Dropbox/work/embedded/ossi/spike) Test 'test_light.c' ------------------- Generating runner for test_light.c... Compiling test_light_runner.c... Compiling test_light.c... Linking test_light.out... Running test_light.out... ------------------------ FAILED UNIT TEST SUMMARY ------------------------ [test_light.c] Test: test_led_off_fail At line (39): "Expected 1 Was 0" ------------------------- OVERALL UNIT TEST SUMMARY ------------------------- TESTED: 4 PASSED: 3 FAILED: 1 IGNORED: 0 --------------------- BUILD FAILURE SUMMARY --------------------- Unit test failures. Build step 'Execute shell' marked build as failure Finished: FAILURE ====== 마지막 빌드 정보 가져오기 ====== #!/usr/bin/python import json import sys import urllib2 jenkinsUrl = "http://donghee8.com:8080/job/" jobName = "ossi_blinky" stream = urllib2.urlopen( jenkinsUrl + jobName + "/lastBuild/api/json" ) buildStatusJson = json.load(stream) if buildStatusJson.has_key( "result" ): print "[" + jobName + "] build status: " + buildStatusJson["result"] if buildStatusJson["result"] != "SUCCESS" : # Build has problem. need to alert print 'Build failure' else: # Build Success. print 'Build success' ====== 해보기 ====== print 'Build faileure' 줄 아래에 시리얼포트를 이용하여 경광등을 켜는 명령을 추가해보자.