====== 젠킨스: 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' 줄 아래에 시리얼포트를 이용하여 경광등을 켜는 명령을 추가해보자.