gpt4 book ai didi

java - Eclipse 中带有 TestNG 插件的 @BeforeSuite 和 @AfterSuite 的问题

转载 作者:行者123 更新时间:2023-12-01 15:05:13 25 4
gpt4 key购买 nike

我有几个套房,如 Suite1、Suite2、Suite3 等。我还有一个名为 CommonSuite 的通用套件,它具有 @BeforeSuite@AfterSuite 方法。我有一个 testng.xml,配置了所有套件,并且我正在使用 Maven 故障安全插件来运行测试。一切正常。

现在我的问题是,如果我想在 eclipse 中使用 TestNG 插件运行/调试例如 Suite1,我如何确保我的 CommonSuite 也包含在 Suite1 中?我知道的一种肮脏的方式是,我可以在 testng.xml 中注释所有我不想运行的套件,并仅保留 CommonSuite 和 Suite1,然后作为 TestNG 套件运行/调试。但这似乎不是这样做的正确方法。还有其他更好的方法来实现这一目标吗?

最佳答案

嗨,最好的方法是为套装实现一个监听器类,实现 ISuiteListener

基本类如下所示

    public class PlatformSuite implements ISuiteListener { 

/**
* This method is invoked before the SuiteRunner starts.
*/
public synchronized void onStart(ISuite suite) {
/*Your before suite implementation here*/
}

/**
* This method is invoked after the SuiteRunner has run all
* the test suites.
*/

public void onFinish(ISuite suite) {
/*Your after suite implementation here*/
}

}}

对于 Eclipse 插件,您可以将 testng xmal 指定为“模板 XML 文件”

要在 testng.xml 中启动监听器,您可以添加以下内容,请记住禁用默认监听器设置

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="DssTestSuite" parallel="false">
<parameter name="useDefaultListeners" value="false"/>
<listeners>
<listener class-name="org.someonr.something.core.PlatformSuite"/>
</listeners>
<test name="sample Test" parallel="false" verbose="2">
<packages>
</packages>
<classes>
</classes>
</test>

此调用将在每个测试套件之前和每个测试套件之后调用

关于java - Eclipse 中带有 TestNG 插件的 @BeforeSuite 和 @AfterSuite 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13053049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com