2009-10-09 48 views
5

我有一個腳本系統的make文件,有很多測試應該通過。每個測試是對腳本應用程序的單獨調用:GNU make:顛倒子進程成功?

#---------------------------------------------------------------------------- 
# run test scripts in the module::test 
#---------------------------------------------------------------------------- 
scripted_tests: bin/kin modules/test/actor_equality.kin modules/test/actor_fibre.kin ... 
    bin/kin modules/test/actor_equality.kin 
    bin/kin modules/test/actor_fibre.kin 
    ... 

這很好。我也有一些類似的測試應該返回失敗。我知道-將忽略返回的狀態,但必須有一些簡單的反轉返回狀態,所以我可以運行

#---------------------------------------------------------------------------- 
# run test scripts in the module::test::errors 
#---------------------------------------------------------------------------- 
inverse_tests: bin/kin modules/test/error/bad_function.kin ... 
    not bin/kin modules/test/error/bad_function.kin 
    ... 

回答

8

使用!命令。

echo This returns success 
! echo This returns failure 
+1

具體而言,其「!斌/親屬」,而不是「!斌/親屬」,這是我嘗試過,並得到一個錯誤 – 2009-10-09 20:53:56

+0

用grep時,測試的錯誤消息的在建日誌輸出存在非常有用的。 '! grep output.log -i「錯誤信息」' – shuckc 2013-10-11 16:52:23

1

假設你要確保的「斌/親屬test5.kin」退出狀態爲5.然後,只需這樣寫:

run-test5: 
    bin/kin test5.bin; test $$? = 5 

評估技術試驗看到「助考」和「男人測試」。

注:我傾向於避免感嘆號,因爲它通常是不可能複製/粘貼它們到一個交互式shell(因爲它搜索歷史記錄)。