Java 排除TestNG中不在套件中的组
我正在TestNG中使用一个套件文件来定义我想要运行的测试。这些套件是由jenkins作业触发的,现在我需要选择是否排除特定组 我考虑在jenkins中添加一个额外的构建参数,并在系统属性中添加一个标志(如果该参数设置为soJava 排除TestNG中不在套件中的组,java,jenkins,testng,Java,Jenkins,Testng,我正在TestNG中使用一个套件文件来定义我想要运行的测试。这些套件是由jenkins作业触发的,现在我需要选择是否排除特定组 我考虑在jenkins中添加一个额外的构建参数,并在系统属性中添加一个标志(如果该参数设置为so-DexcludeMyGroup=true)。在我的基本测试中的一些@BeforeSuite或@BeforeTest方法中,我想检查属性及其值。根据这一点,我想从我的套件中排除该组 我试过了 @BeforeTest public void beforeTest(XmlTest
-DexcludeMyGroup=true
)。在我的基本测试中的一些@BeforeSuite
或@BeforeTest
方法中,我想检查属性及其值。根据这一点,我想从我的套件中排除该组
我试过了
@BeforeTest
public void beforeTest(XmlTest test) {
if (!Boolean.parseBoolean(System.getProperty("excludeMyGroup"))) {
test.addExcludedGroup("myGroup");
}
}
以及
@BeforeSuite
public void beforeSuite(ITestContext context) {
if (!Boolean.parseBoolean(System.getProperty("excludeMyGroup"))) {
cont.getSuite().getXmlSuite().addExcludedGroup("myGroup");
}
}
但两者都不起作用
我曾尝试使用第二种方法修改其他参数,如线程数,使用
cont.getSuite().getXmlSuite().setThreadCount(10)
可以很好地工作,但我还没有找到排除套件文件之外的特定组的方法。是否有可能在事后排除此问题?我找到了几种方法:
publicstaticvoidmain(字符串[]args){
TestNG tng=新的TestNG();
tng.setExcludedGroups(“excludedGroup1,excludedGroup2”);
tng.run();
}
$ java <classfilename> excludedgroup1 excludedgroup2
-excludegroups
的命令行开关,如果从命令行运行TestNG.xml文件,该开关将获取要排除的组的逗号分隔列表:谢谢您的回答,但是您的所有方法都需要在运行测试之前设置组。我想做的是在开始TestNG运行之后但在运行套件之前排除一个组。有没有一种方法可以做到这一点?:)@CarleB.Navy我必须对此进行调查,但我只是想澄清一下,为什么在开始跑步之后但在开始跑步之前,你有必要排除团队成员?如果您提前知道要从哪些套房中排除哪些群体,为什么不提前排除这些群体?我认为您是对的。排除这些群体的时间无关紧要。唯一的问题是我不能在套件文件中排除它们,因为测试运行是由jenkins作业触发的。这同样适用于您的第一种方法。如果有任何进一步的建议,我将不胜感激。非常感谢你already@CarleB.Navy当然因此,如果詹金斯的工作是关于排除哪些群体的信息的来源,那么我提供的第一种和第三种方法不都适用吗?在第一种方法中,您不能通过jenkins作业以编程方式运行testng文件吗?如果我误解了,请原谅,因为我对詹金斯一无所知。
public static void main(String[] args) {
TestNG tng = new TestNG();
tng.setExcludedGroups(args[0] + ", " + args[1]);
tng.run();
}