[Power Shell] 透過排程執行 Protractor測試
這兩天寫完了Protractor測試後,在本機執行沒問題後,將執行語法作成一個.bat檔後,放到測試主機Window Server 2012的排程工作執行。但一直無法出現測試畫面 (但手動執行.bat ok),本還以為是Window 2012後不支援.bat的排程執行=.=,後來查到是要設為"登入時才執行"。
設定後,排程可以順利執行.bat,但卻出現protractor 找不到conf.js來執行的錯誤,如下語法
我的.bat跟flow-conf.js放在同一目錄,手動執行.bat沒問題,但在排程執行時,預設執行目錄會變 c:\window,所以會找不到。若直接改成絕對路徑也可以解決,例: protractor e:\app-dir\flow-conf.js。但想到這樣若換了目錄的話,bat又要改一次,索性Survery了一下,改用PowerShell的寫法來執行。
Power Shell 語法
透過下圖紅框,取得檔案目前的執行位置,再透過protractor執行
$path=(Split-Path -parent $PSCommandPath)+"\flow-conf.js";
排程設定
相關參考
http://www.dotblogs.com.tw/jamesfu/archive/2014/05/16/autostartservice.aspx