![sonar-swift-00]()
![sonar-swift-00]()
ว่าง ๆ ช่วงฝนตกมานั่งวิเคราะห์ code ของภาษา Swift ด้วย
SonarQube กันหน่อย
ถ้าไปดูใน SonarQube จะพบว่ามี plugin ให้ใช้แล้ว
แต่ว่ามันเป็น commercial หรือเสียเงินนั่นเอง
ดังนั้นจึงไปลองหาของฟรีและไปพบกับ
Sonar Swift
จึงนำมาทดลองใช้กันหน่อย
เริ่มต้นด้วยการดูหน่อยสิว่า Sonar Swift มันมีอะไรให้ใช้บ้าง ?
- การทดสอบทั้ง Unit test และ UI Test ผ่าน xcodebuild
- และทำรายงานสรุปผลการทดสอบด้วย xcpretty
- เรื่องของ code coverage ใช้งาน Slather
- ตรวจสอบ issue ต่าง ๆ ด้วย SwiftLint ซึ่งสามารถดูเพิ่มเติมได้จาก blog การใช้งาน SwiftLint
- ตรวจสอบเรื่อง complexity หรือความซับซ้อนของ code ด้วย Lizard
- อีกทั้งยังสามารถตรวจสอบเรื่อง code ที่ซ้ำซ้อน และข้อมูลพื้นฐานของ code ได้
การติดตั้ง plugin
ทำการ download ไฟล์
backelite-sonar-swift-plugin-0.2.4.jar
จากนั้นนำไปวางใน $SONARQUBE_HOME/extensions/plugins ของ SonarQube
จากนั้นทำการ start หรือ restart service ของ SonarQube
แล้วเข้าไปตรวจสอบว่า plugin ติดตั้งเรียบร้อยหรือไม่
ในเมนู System -> Update Center
ถ้าติดตั้งสำเร็จจะแสดงดังรูป
มาถึงการใช้งานกันบ้าง
ใน Xcode project ต้องทำการสร้างไฟล์ sonar-project.properties ขึ้นมา
สำหรับกำหนด configuration ต่าง ๆ ของ project
เพื่อส่งผลการวิเคราะห์ไปยัง SonarQube
แสดงดังนี้
[gist id="ee53ffe28b7ff7ae173eee0e552f6a37" file="sonar-project.properties"]
สามารถดู code ตัวอย่างพร้อม configuration ได้ที่
Github::Demo Sonar Swift
จากนั้นเริ่มต้นวิเคราะห์ code ด้วยคำสั่ง
[code]
$sh run-sonar-swift.sh
[/code]
ผลการทำงานให้เปิด SonarQube จะแสดงผลดังนี้
![sonar-swift-02]()
ยังไม่พอนะ ยังสามารถทำงานร่วมกับ
Fastlane ได้อีกด้วย
เพียงเท่านี้เราก็สามารถวิเคราะห์ code ที่พัฒนาด้วยภาษา Swift แบบง่าย ๆ ได้แล้วครับ
ทำให้เรารู้ได้เลยว่า ควรแก้ไข code อะไร และ ตรงไหนได้บ้าง
น่าจะทำให้การเขียน code สนุกยิ่งขึ้นนะ