2つの注釈を互いに排他的にマークすることはできますか?相互に排他的な注釈
カスタムJUnitランナーがあります。テストに私の注釈@Custom
とマークされている場合は、@Test
でマークすると、コンパイルエラーまたは(あまり好ましくはないが)実行時エラーがスローされます。
@Custom
は、基本的に@Test
ですが、テストを実行する前にいくつかの余分な前処理が必要です。そして、私がそれをコード化したやり方では、各カスタムタグについて(はい、複数あります)、毎回対応する前処理で何度もテストが実行されます。したがって、それが@Test
のために実行されても、そのテストはいくつかの前処理を有することが意図されているので意味をなさない。
また、同じテスト方法ではなく、@Custom
と@Test
の両方を自分のフレームワークでサポートしたいと思います。
これは、実行時エラーとして簡単に実装できます。 '@ Custom'を処理するコードの間に' @ Test'がさらに存在するかどうかを確認するだけです。私はこれがコンパイル時に可能であると信じていませんが、注釈プロセッサを使用する必要はありません。価値のない可能性が高い痛みの全領域。 – FauxFaux
ここではPMDなどの静的解析ツールを利用できます。 –
これを試すhttp://stackoverflow.com/questions/378616/can-i-generate-a-compile-time-error-based-on-the-type-of-the-field-being-annotat – Shahzeb