2013-04-12 54 views
1

通過jenkins,ant文件build.xml將以默認目標進行調用。螞蟻任務調用一個啓動一個新窗口的批處理文件,執行後我的螞蟻單元測試被執行。Jenkins不會執行通過螞蟻調用的批處理腳本

<exec dir="${baseLoc}/Temp/${ant.project.name}/@{testdata}" executable="cmd" vmlauncher="false"> 
      <env key="WAHL" value="@{option}"/> 
      <arg line="/c "/> 
     <arg value="start /wait __Make.bat"/> 

</exec> 

問題是jenkins無法啓動批處理腳本。有什麼理由呢? 注意:相同的東西通過ANT執行。

+1

如果Jenkins作爲Windows服務(而不是用戶)運行,則可能需要查看此[在Windows上的Jenkins下編譯問題的答案](http://stackoverflow.com/a/15788921/ 447438)。 – jwernerny

+0

@ user2245032 - 您可以在運行正常命令的同一用戶下運行jenkins。如果這有效,那麼問題出在詹金斯賬戶的運行系統上,如果這是服務。 – Jayan

+0

Jenkins構建日誌中是否有任何錯誤? –

回答

0

我記得我自己運行多年前的批處理文件,正確獲取返回代碼等等類似的問題。下面是我在螞蟻成功地使用了5年(蟻詹金斯/哈德森正在運行)的前高管:

<property name="my.batch.file" value="${path.to.my.file}/myBatch.bat"/> 

<exec dir="${dir.property.you.want}" executable="cmd" failonerror="true"> 
    <!-- any env lines can go here --> 
    <arg line="/c call ${my.batch.file}"/> <!-- must be the first arg tag --> 
    <arg line="arg1"/> <!-- batch file arguments start here if needed--> 
    <arg line="arg2"/> 
</exec> 

我建議使用ant屬性的完整路徑存儲到您的批處理文件,和/或確保dir項與您的批處理文件所在的位置相匹配。這可能是爲什麼它不在詹金斯運行,因爲它的工作目錄是不同的。

就你而言,你提到它會彈出一個新窗口(因爲你正在使用start),所以你可能需要稍微調整一下以獲得該行爲。

0

由於某些原因,我在執行任務中包含了標記vmlauncher =「false」。刪除這個解決了這個問題。

現在我可以看到執行中的每個批處理腳本的新命令shell。

謝謝你的提示和建議。