Centos 7 Install shUnit2 - Bash 460

Centos 7 Install shUnit2 – Bash 460

  • Post author:
  • Post category:IT / Bash
  • Post comments:0 Comments
  • Post last modified:2023-02-13

Centos 7 Install shUnit2

可以從 GitHub 下載源碼,複製執行檔到指定目錄,快速安裝後,就能很方便的使用所提供的功能,編寫單元測試,驗證 Bash Scripts 的正確性。

功能簡介

shUnit2 是一個 xUnit 單元測試框架,用於基於 Bourne 的 Shell 腳本,它的工作方式與 JUnit 、 PyUnit 等類似,如果想為 Shell 腳本編寫單元測試,可以使用此測試框架來驗證腳本的正確性。

支援系统

Cygwin
FreeBSD (user supported)
Linux (Gentoo, Ubuntu)
Mac OS X
Solaris 8, 9, 10 (inc. OpenSolaris)

支援 Shell

Bourne Shell (sh)
BASH – GNU Bourne Again SHell (bash)
DASH (dash)
Korn Shell (ksh)
pdksh – Public Domain Korn Shell (pdksh)
zsh – Zsh (zsh) (since 2.1.2)

安裝套件

從 GitHub 下載源碼。

git clone https://github.com/kward/shunit2

下載後,複製 shunit2 到 /usr/bin/ 目錄下,就可以在任何目錄中執行。

cp ./shunit2/shunit2 /usr/bin/

狀態驗證

Install shUnit2 CentOS 使用 shunit2 命令,來執行單元測試。

shunit2

Ran 0 tests.

OK

檔案目錄

./
   +- install
       +- shunit2_test.sh

單元測試

提供腳本執行前後,與方法執行前後的執行方法。

  1. oneTimeSetUp 腳本執行前執行的方法。
  2. oneTimeTearDown 腳本執行後執行的方法。
  3. setUp 每次測試用例執行前執行的方法。
  4. tearDown 每次測試用例執行後執行的方法。

內建變數,提供測試用例相關統計資料。

  1. ${__shunit_testsTotal} 統計測試次數。
  2. ${__shunit_testsPassed} 統計成功次數。
  3. ${__shunit_testsFailed} 統計失敗次數。
  4. ${__shunit_assertsTotal} 統計斷言測試次數。
  5. ${__shunit_assertsPassed} 統計斷言成功次數。
  6. ${__shunit_assertsFailed} 統計斷言失敗次數。
  7. ${__shunit_assertsSkipped} 統計斷言忽略次數。

testHelloWorld

新增單元測試,驗證是否符合預期。

helloWorld () {
    echo "Hello World"
}

testHelloWorld () {
    assertEquals "string" "$(helloWorld)"  "Hello World"
}
oneTimeSetUp
setUp
testHelloWorld
tearDown
oneTimeTearDown
testsTotal: 1
testsPassed: 1
testsFailed: 0
assertsTotal: 1
assertsPassed: 1
assertsFailed: 0
assertsSkipped: 0

Ran 1 test.

OK

shunit2_test.sh

Unit Test Shell Script 新增單元測試,驗證是否符合預期。

#!/bin/bash

oneTimeSetUp () {
    echo "oneTimeSetUp"
}

oneTimeTearDown () {
    echo "oneTimeTearDown"
    echo "testsTotal: ${__shunit_testsTotal}"
    echo "testsPassed: ${__shunit_testsPassed}"
    echo "testsFailed: ${__shunit_testsFailed}"
    echo "assertsTotal: ${__shunit_assertsTotal}"
    echo "assertsPassed: ${__shunit_assertsPassed}"
    echo "assertsFailed: ${__shunit_assertsFailed}"
    echo "assertsSkipped: ${__shunit_assertsSkipped}" 
}

setUp () {
    echo "setUp"
}

tearDown () {
    echo "tearDown"
}

helloWorld () {
    echo "Hello World"
}

testHelloWorld () {
    assertEquals "string" "$(helloWorld)"  "Hello World"
}


# Load shunit2
. shunit2

心得分享

CentOS Install shUnit2 快速安裝後,使用此框架,可以撰寫出適合系統業務需求的測試程式,當腳本更新就會增加一段給新功能的測試, Unit Testing Shell Scripts 協助除錯與測試。

發佈留言