私はGradleの 'test'タスクを介して呼び出される大きなTestNGスイートを持っています。このスイートはうまく動作しますが、Gradleにテストスイートの情報を尋ねるのが難しいです。具体的には、包含グループと除外グループのリスト。Gradleの空のTestNGグループリスト
私のtestng.xmlの私のグループ構成は次のようなものになります。
<groups>
<run>
<exclude name="notReady" />
</run>
</groups>
を私の目標は、ユーザーがコマンドラインプロパティを使用して、実行時にグループを包含/除外指定し、[追加するための手段を提供することですそれらをtestng configの適切なリストに追加します。唯一のキャッチは、私はまだtestng.xmlファイルの既存のinclude/exclude設定を尊重する必要があるということです。ここで
は、私は私のタスクブロック(マイナスコードをシンプルにするために解析するコマンドライン)で何をしようとしているの簡単なbuild.gradle例です:
test {
useTestNG() {
suites("src/test/resources/testng.xml")
Set<String> excludeGroups = getExcludeGroups() // Returns an empty set
excludeGroups.add("someOtherGroup")
setExcludeGroups(excludeGroups)
}
}
私はexcludeGroupsがあることを期待します[ 'notReady']、代わりに空のセットを返します。 getIncludeGroups()も同じことが起こります。私はsuites()が呼び出されたときに実際にXMLファイルを読み込んで解析しないので、これは疑わしいですが、私はそれを裏付ける証拠はありません。
私はTestNGOptionsのドキュメントを覗き込んできましたが、私が何か間違っているのか、それとも予想された動作なのか分かりません。明らかに、私はtestng.xmlの代わりにbuild.gradleにデフォルトのインクルード/除外リストを定義することで問題を回避することができますが、それは一種の気がします。誰かが私のためにこれについて少しの光を照らすことができれば、それは非常に高く評価されるだろう。あなたは、XML自体はBeanShellのを使用して、実行時にグループを設定可能にすることができ
おかげで、
アンディ