我有一个很大的TestNG套件,可以通过Gradle中的'test'任务调用。套件运行得很好,但是我向Gradle询问测试套件信息时遇到了一些困难。具体来说,包括和排除组列表。
我的testng.xml中的组配置如下所示:
<groups>
<run>
<exclude name="notReady" />
</run>
</groups>
我的目标是为用户提供一种方法,使用命令行属性在运行时指定包含/排除组,然后将它们添加到testng配置中的相应列表中。唯一的问题是,我仍然需要尊重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文档,但我不确定我是做错了什么,或者这只是预期的行为。显然,我可以通过在build.gradle中定义我的默认包含/排除列表而不是testng.xml来解决这个问题,但这有点笨重。如果有人能为我发光,我会非常感激。
谢谢,
安迪
答案 0 :(得分:0)
您可以使用beanshell使用xml本身在运行时配置组。