2013-11-26 44 views
1

設置:觸發正確的電子郵件

  • 詹金斯
  • NUnit的
  • 電子郵件-EXT(詹金斯插件)

我們有一個在C#中進行設置的測試套件:它在TestRail中檢查測試計劃中存在的測試,並寫入文件的測試列表。在詹金斯構建有兩個構建步驟(拉&生成後):

  1. 運行安裝程序套件獲得的測試來打擾運行列表中。
  2. 運行該套件,使用/runlist NUnit參數拉入該列表。

當測試運行時,這很有效。

但是,由於[完全獨立的實現],有時候這個文件是空的。因此,NUnit的結果爲「用列表運行」構建步驟:

Tests run: 0, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0.010100375885762 seconds 
Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0 

這告訴詹金斯這一步失敗:

C:\Program Files (x86)\Jenkins\jobs\[job_name]\workspace>exit 0 
Archiving artifacts 
Recording NUnit tests results 
No test report files were found. Configuration error? 
Build step 'Publish NUnit test result report' changed build result to FAILURE 
Email was triggered for: Failure 
Sending email for trigger: Failure 

我要的是兩件事情之一:

  • 至少,它不會發送失敗的電子郵件。
  • 理想情況下,設置構建步驟的結果會告訴構建停止,因爲沒有任何構建。 「中止」電子郵件觸發器將被髮送。

如何配置詹金斯/這個構建發生?

+0

我相信有插件,使某些生成步驟的條件。否則,你可以使用它來保證套件中始終包含一個總是通過的測試嗎?這樣,「空」運行仍然會包括一個通過測試。 – rutter

回答

1

我相信我已經找到了自己的問題的答案。

步驟:

  • 安裝Conditional Build Step plugin
  • 安裝Fail The Build plugin
  • 添加一個批處理腳本,如果測試運行文件大小爲0,則返回錯誤代碼1,否則返回錯誤代碼0。
  • 添加單個條件構建步驟:
    • 執行Windows批處理命令==批處理文件的路徑。
    • 設置構建結果==不穩定(或其他)。

我的批處理文件代碼:

@echo off 

REM Retrieve the build name. 
set arg1=%1 

REM Set the file name. 
set file="C:\Path\To\TestsToRunFile\%arg1%.txt" 

REM Get the file size. 
FOR /F "usebackq" %%A IN ('%file%') DO set size=%%~zA 

REM Exit codes based on the file size. 
IF %size% EQU 0 (
    exit /b 0 
) ELSE (
    exit /b 1 
)