saurav:
私は複数のOS上で動作するクライアント側のJavaアプリケーションを持っています。
私は別のOSで実行するとさまざまな期待を与えるロジックをテストしたいです。
例えばのために、私はWindows上で実行したときにロジックが通過し、私はOSX上で実行したときにロジックが例外をスローします。
私は2つの別々のテストを書いて、異なるOS用の別々のビルド・プロファイルを使用して一つだけを実行するが、異なるOSの下で異なる動作をします、単一のJUnitテストを記述することが可能であることができます。?
OSXのために私は期待のようにし、Windowsの通常のロジックが動作するはずの場合を除いて、テストに注釈を付けるにしたいです。それは、実行時に期待が特定の状況下で異なることがJUnitのでは可能ですか?
宜しくお願いします、
Saurav
ガゾ:
でSystem.getProperty("os.name")
、あなたが上であるオペレーティングシステムをチェックすることができ、その後、あなたは、特定のオペレーティングシステム、例えば上で必要のないテストケースを除外するために、条件付き実行を使用することができます
public class SomeTest {
@Rule
public ConditionalIgnoreRule rule = new ConditionalIgnoreRule();
@Test
@ConditionalIgnore( condition = NotRunningOnWindows.class )
public void testFocus() {
// ...
}
}
public class NotRunningOnWindows implements IgnoreCondition {
public boolean isSatisfied() {
return !System.getProperty( "os.name" ).startsWith( "Windows" );
}
}
ソース:コードアフィン