1

設定:

  • ジェンキンス
  • NUnit
  • セレン
  • メール内線 (Jenkins プラグイン)

セットアップを行う C# のテスト スイートがあります。TestRail でテスト計画に存在するテストをチェックし、テストのリストをファイルに書き込みます。Jenkins でのビルドには 2 つのビルド手順があります (プルとビルドの後):

  1. セットアップスイートを実行して、実行するテストのリストを取得します。
  2. /runlistNUnit パラメーターを使用してスイートを実行し、そのリストを取得します。

これは、実行するテストがある場合に非常にうまく機能します。

ただし、【完全分離実装】のため、そのファイルが空の場合があります。したがって、「run with list」ビルドステップの NUnit の結果は次のようになります。

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

これは、このステップが失敗したことを Jenkins に伝えます。

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

私が欲しいのは、次の2つのうちの1つです。

  • 少なくとも、失敗の電子メールは送信されません。
  • 理想的には、ビルドするものが何もないため、セットアップ ビルド ステップの結果でビルドを停止するように指示されます。「中止」メール トリガーが送信されます。

Jenkins/このビルドを構成してそれを実現するにはどうすればよいですか?

4

1 に答える 1

1

私は自分自身の質問に対する答えを見つけたと信じています。

手順:

  • Conditional Build Step プラグインをインストールします。
  • Fail The Build プラグインをインストールします。
  • 実行するテストのファイル サイズが 0 の場合はエラー コード 1 を返し、それ以外の場合はエラー コード 0 を返すバッチ スクリプトを追加します。
  • 単一の条件付きビルド ステップを追加します。
    • Execute Windows Batch Commands == バッチ ファイルへのパス。
    • ビルド結果 == 不安定 (または何でも) を設定します。

私のバッチファイルコード:

@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
)
于 2014-01-16T16:34:16.657 に答える