0
プロパティファイルから値を取り出し、IgnoreIf述語に入力してテストを無視したいとします。可能であれば教えてください。回避策を教えてください。Spock @Ignoreプロパティファイルに基づいて
ありがとうございます。
プロパティファイルから値を取り出し、IgnoreIf述語に入力してテストを無視したいとします。可能であれば教えてください。回避策を教えてください。Spock @Ignoreプロパティファイルに基づいて
ありがとうございます。
Spock Manual, chapter "Extensions"は、sys
、env
、os
、jvm
のようにバインドされた変数を使用する方法について説明します。しかし、基本的にGroovyクロージャーをそこに置くことができます。
テストを実行しているときにコマンドラインで環境変数またはシステムプロパティを指定した場合は、それらにアクセスするためにenv
またはsys
を使用できます。 spock.properties
ファイル:あなたが絶対ファイルからプロパティを読みたい場合はしかし、ちょうどこのようなヘルパークラスを使用し
は、おそらくあなたがSRC下のどこかにファイルを入れたいです/テスト/リソース Mavenでビルドする場合。プロパティを読み取り
spock.skip.slow=true
ヘルパークラスは、ファイル:
import spock.lang.IgnoreIf
import spock.lang.Specification
import spock.util.environment.OperatingSystem
class IgnoreIfTest extends Specification {
@IgnoreIf({ SpockSettings.SKIP_SLOW_TESTS })
def "slow test"() {
expect:
true
}
def "quick test"() {
expect:
true
}
@IgnoreIf({ os.family != OperatingSystem.Family.WINDOWS })
def "Windows test"() {
expect:
true
}
@IgnoreIf({ !jvm.isJava8Compatible() })
def "needs Java 8"() {
expect:
true
}
@IgnoreIf({ env["USERNAME"] != "kriegaex" })
def "user-specific"() {
expect:
true
}
}
:
class SpockSettings {
public static final boolean SKIP_SLOW_TESTS = ignoreLongRunning();
public static boolean ignoreLongRunning() {
def properties = new Properties()
def inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("spock.properties")
properties.load(inputStream)
inputStream.close()
//properties.list(System.out)
Boolean.valueOf(properties["spock.skip.slow"])
}
}
テストヘルパークラスを使用して