JUnitでプラットフォーム依存のテストを行いたい*1とき、みなさんはどうされているのでしょうか。テストメソッド内で System.getProperty("os.name") 等としてOS判定し、実行する処理を分岐させたりしているのでしょうか。 こんな感じで、アノテーションで実行を制御できたら楽ですね。 Junitでは、特定の条件下でのみそのテストを走らせる、といったオプションがありません。あるテストスイートを実行しないようにする @Ignore アノテーションはありますが、これはテスト実行の条件を指定して特定条件下でのみ無視するといったものではないため、今回のケースには適しません。 さて、そこはプログラマーの発想であるところの「ないなら作ればいいじゃない」ということで、実装してみましょう。まず、アノテーション @DependsOnPlatform を作ります。引数でプラットフォームを指