UPDATE 2019-03-01:私の好みはコウモリです。私は小さなプロジェクトで数年間それを使用しました。クリーンで簡潔な構文が気に入っています。私はそれを CI/CD フレームワークと統合していませんが、その終了ステータスはスイートの全体的な成功/失敗を反映しており、以下で説明する shunit2 よりも優れています.
前の回答:
Linux 環境で Java/Ruby Web アプリケーションに関連するシェル スクリプトに shunit2 を使用しています。使いやすく、他の xUnit フレームワークと大きな違いはありません。
CruiseControl や Hudson/Jenkins との統合は試していませんが、他の方法で継続的統合を実装する際に、次の問題に遭遇しました:
- 終了ステータス:テスト スイートが失敗した場合、shunit2 はゼロ以外の終了ステータスを使用して失敗を通知しません。そのため、shunit2 の出力を解析してスイートの合否を判断するか、一部の継続的インテグレーション フレームワークが期待するように shunit2 を変更して、終了ステータスを介して合否を伝える必要があります。
- XML ログ:shunit2 は結果の JUnit スタイルの XML ログを生成しません。
なぜ誰もBATSについて言及しなかったのか疑問に思います。これは最新で、TAP に準拠しています。
説明:
#!/usr/bin/env bats
@test "addition using bc" {
result="$(echo 2+2 | bc)"
[ "$result" -eq 4 ]
}
実行:
$ bats addition.bats
✓ addition using bc
1 tests, 0 failures