2012-02-15 30 views
3

我試圖使用jasmine-node來測試js文件。我們編寫了一些規範,當我們從命令行測試時,一切都很順利。如何從ant build.xml調用jasmine-node

但是,我們正在努力,以在我們的Ant構建我們的測試中,我已經嘗試過的幾種組合:

<exec executable="jasmine-node" dir="${dir.src}" verbose="true" failonerror="true" outputproperty="stdout"> 
     <arg value="--verbose" /> 
     <arg value="--test-dir" /> 
     <arg path="${dir.src}" /> 
    </exec> 

dir.src只是基本目錄,我們的js文件和規範生活。組合已嘗試並將兩個值都移動到一行中,並將所有三行都移動到一行中,等等。

正如我所說的,將「jasmine-node --verbose --test-dir directory」在命令行。

如果任何人都可以在這裏提供任何幫助,那就太好了。

謝謝!編輯: 我有這個trycatch塊。這裏的整個事情:

<trycatch> 
     <!-- execute tests --> 
     <try> 
      <apply executable="jasmine-node" dir="${dir.src}" verbose="true" failonerror="true" outputproperty="stdout"> 
       <arg value="--verbose" /> 
       <arg value="--test-dir" /> 
       <arg path="${dir.src}" /> 
      </apply> 
     </try> 
     <catch> 
      <property name="error" value="true" /> 
      <echo message="Jasmine tests failing" /> 
     </catch> 
    </trycatch> 

因此,在控制檯輸出「茉莉花測試失敗」

+0

請發佈運行您的任務的結果 - 是否打印錯誤信息?默默地失敗? etc. – maerics 2012-02-15 18:46:30

+0

我想我應該包括,我有這在trycatch塊: – geekonablog 2012-02-15 18:56:01

回答

2

刪除trycatch塊後,我收到一條錯誤消息,說您不能在exec中擁有verbose =「true」,儘管我會發誓我在之前的某處看到過。詳細總是讓它失敗,但因爲我有一個在那裏捕捉,我沒有得到一個很好的錯誤信息。我現在將把trycatch放回去,我可以讓命令運行,因爲如果開發人員構建沒有安裝jasmine,我們會希望構建失敗。

這是我的工作茉莉節點調用。

<exec executable="jasmine-node" failonerror="true"> 
    <arg line="--verbose ${dir.src}" /> 
</exec> 

這將打印正常軌跡的東西,當我在命令行中運行茉莉節點,我得到的,這正是我想要的。

此外,上面的應用只是我試圖使它的工作。我真正想要的是一位高管,這是我一開始就有的。

0

的trycatch是隱藏的錯誤調用apply任務。 ANT文檔指出:

至少需要一個文件集或文件列表,您不能指定多個映射器。

此外,該應用任務通常用於調用對文件集中每個文件的命令......我不熟悉的茉莉花節點,但我懷疑你只需要對一個目錄調用一次呢?

+0

其實,申請是不是甚至我想要的權利。我只是試圖看看是否會起作用。謝謝你的回答! – geekonablog 2012-02-16 18:06:26