在過去文章,如果我們要用執行測試後看 allure,只能在跑完測試後手動輸入 allure serve,然後要關掉的時候還要按 Ctrl+C 再輸入Y 確認是否要關掉,多少有點麻煩。而今天要介紹的 shell script 可以讓我們一次執行多行指令,節省重複輸入指令的時間,也可以拿來當 Jenkins 自動執行的腳本。
shell script 的檔案通常是 xxx.sh 的格式,我們可以把之前在終端輸入的指令放到 shell script 內
,以執行測試後打開報表為例:
echo "test start"
pytest
allure serve report
echo "test end"
這樣一個 shell 檔就成形了。但是我們嘗試在終端執行時會發現跑不動。
要執行 shell script 需要 linux 環境,但我們在過去安裝過的 git 就有執行 shell 的能力。若在安裝 git 是用預設路徑,可以到 C:\Program Files\Git\bin
中,裡面有 sh.exe,可以利用這個執行 sh 檔(或是直接打開 git 的 Git bash 或是在 Windows 安裝 WSL)。
如此一來,在終端輸入
"C:\Program Files\Git\bin/sh.exe" sh_name.sh
若無法執行可以嘗試& "C:\Program Files\Git\bin/sh.exe" sh_name.sh
就可以執行了,但每次都要輸入 sh.exe 的路徑會過於攏長,我們可以把 bin 的絕對路徑放到 環境變數的 PASH
內,這樣只要輸入 sh.exe sh_name.sh
就可以執行了。
若無法執行可以嘗試重新開機讓環境變數生效。
這樣鐵人賽 30 篇就告一段落了。這次是第一次參加類似的活動,雖然因為疏忽導致在前面就無法完賽,但這 30 篇文章也讓我學到很多,期望明年參賽能夠有好的結果。