[解決済み] JUnit 4で条件付きでテストを無視する
質問
OK、では
@Ignore
アノテーションは、あるテストケースを実行すべきでないことを示すのに適しています。
しかし、時には実行時の情報に基づいてテストを無視したいこともあります。 例えば、あるコア数のマシンで実行する必要のある並行処理テストがある場合です。 このテストがユニプロセッサのマシンで実行された場合、(まだ実行されていないので)テストをパスするのは正しくないと思いますし、テストに失敗してビルドが壊れるのは間違いなく正しくありません。
そのため、実行時にテストを無視できるようにしたいのです。これが正しい結果のように思えるからです(テストフレームワークはビルドを通過させるが、テストが実行されなかったことを記録するため)。 アノテーションがこのような柔軟性を与えてくれないことは確かで、 問題となるクラスのテストスイートを手動で作成する必要があると思われます。 しかし、ドキュメントにはこのことについて何も書かれておらず、 また
API
のインスタンスをプログラムで作成するにはどうすればよいのだろうか?
Test
などで作成されたものと同等である。
@Ignore
アノテーション?)
もし、過去に同じようなことをしたことのある方や、他にどうしたらいいかという明るいアイデアをお持ちの方がいらっしゃいましたら、教えていただければと思います。
解決方法は?
JUnitの方法は、これを実行時に行うには
org.junit.Assume
.
@Before
public void beforeMethod() {
org.junit.Assume.assumeTrue(someCondition());
// rest of setup.
}
の中で行うことができます。
@Before
メソッドやテストそのものには適用されません。
@After
メソッドを使用します。テストそのものでやると
@Before
メソッドが実行されます。また
@BeforeClass
を使用すると、クラスの初期化を防ぐことができます。
想定外の失敗があると、テストが無視されます。
編集してください。
と比較するために
@RunIf
のアノテーションを使用します。
junit-ext
であれば、そのサンプルコードは次のようになります。
@Test
public void calculateTotalSalary() {
assumeThat(Database.connect(), is(notNull()));
//test code below.
}
からの接続をキャプチャして使用する方がはるかに簡単であることは言うまでもありません。
Database.connect()
メソッドをこのように使用します。
関連
-
[解決済み】Eclipse No tests found using JUnit 5 caused by NoClassDefFoundError for LauncherFactory
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
javaでクラスを作成すると、enclosing classでないように見える
-
Javaエラーメッセージがenclosingクラスでない
-
Error: java.lang.NoClassDefFoundError: クラス XXXX を初期化できませんでした
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Mavenが実行するJUnitテストを見つけ出せない
-
[解決済み] ディレクトリ内のすべてのPythonユニットテストを実行するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラー java.util.NoSuchElementException
-
java.util.NoSuchElementException 原因解析と解決方法
-
スタイルが読み込まれず、ブラウザのコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
this()の呼び出しはコンストラクタ本体の最初の文でなければならない 例外解決と原因分析
-
Methodのinvokeメソッド実装のJavaリフレクション
-
node js npm gruntインストール、elasticsearch-head 5.Xインストール
-
マスキング このリソースにアクセスするには、完全な認証が必要です。
-
Java(1)仕上げの基本概念+eclipseのインストール構成
-
Google Chromeのエラー「Not allowed to load local resource」の解決策について