使用したいクラスがロードされているかどうかを検証するクラスを作成します (クラスローダーの仕組みにより、別のクラスにする必要があります。次のようになります)。
public class OODetector {
public static boolean isOOOnClassPath() {
try {
OODetector.class.getClassLoader().loadClass("org.... class name here ...");
return true;
} catch (Throwable t) {
return false;
}
}
}
クラスパス上のクラスを必要とするテストの開始時に、置くだけでAssume.assumeThat(OODetector.isOOOnClassPath(), is(true));
テストはスキップされます。
public class OOTests {
@Test
public void smokes() throws Exception {
Assume.assumeThat(OODetector.isOOOnClassPath(), is(true));
// rest of test
}
}
またはさらに良いことに、 @BeforeClass に入れます。
public class OOTests {
@BeforeClass
public static void smokes() throws Exception {
Assume.assumeThat(OODetector.isOOOnClassPath(), is(true));
}
// tests
}
オブジェクト指向がクラスパスにない場合、クラス内のすべてのテストをスキップし、失敗した数には影響しませんが、合計テスト数を有効に保ち、Maven 起動テストへのランタイム依存関係を取得する正しい方法を見つけた場合クラスパス、テストは魔法のように実行を開始します