web-dev-qa-db-ja.com

プロパティが定義されているかどうかのGradleタスクチェック

Testngテストスイートを実行するgradleタスクがあります。特別なtestng xmlスイートファイルを使用するためにタスクにフラグを渡すことができるようにしたい(または、フラグが設定されていない場合はデフォルトのスイートを使用する)。

gradle test

デフォルトの標準テストスイートを実行する必要があります

gradle test -Pspecial

特別なテストスイートを実行する必要があります

私はこのようなことを試みてきました:

test {
    if (special) {
        test(testng_special.xml);
    }
    else {
        test(testng_default.xml);
    }
}

しかし、未定義のプロパティエラーが表示されます。これについて正しい方法は何ですか?

31
user2506293
if (project.hasProperty('special'))

それを行う必要があります。

Testngスイートを選択するために行っていることは機能しないことに注意してください。テストタスクにはtest()メソッドがありません。 https://discuss.gradle.org/t/how-to-run-acceptance-tests-with-testng-from-gradle/4107 を参照してください。

test {
    useTestNG {
        suites 'src/main/resources/testng.xml'
    }
}
65
JB Nizet

これは私のために働いた:

test {
    if (properties.containsKey('special')) {
        test(testng_special.xml);
    }
    else {
        test(testng_default.xml);
    }
}
0
Noelia