当前位置: 首页 > 知识库问答 >
问题:

在TestNG中运行时获取套件名称

弘烨烁
2023-03-14

如何在测试用例的运行时获得当前运行套件的名称?我正在使用下面显示的一段代码来获取当前套件名称。

Listeners类:

public class SuiteListener implements ISuiteListener{

private static ThreadLocal<ISuite> ACCESS = new ThreadLocal<ISuite>();

public static ISuite getAccess() {
         return ACCESS.get();
    }

@Override
public void onFinish(ISuite suite) {
    ACCESS.set(null);
}

@Override
public void onStart(ISuite arg0) {
    ACCESS.set(arg0);
}

 }
    @Listeners({ SuiteListener.class })
public class Practise {

    @DataProvider(name = "getXlsPath")
    public Object[][] createData() throws Exception {
        String [][] testCasesPaths=null;
        ISuite suiteListner = SuiteListener.getAccess();
        String runningSuite=suiteListner.getName();
        System.out.println(runningSuite);
        testCasesPaths[0][0]="1.xls";
        testCasesPaths[1][0]="2.xls";
        return testCasesPaths;
    }

    @Test(dataProvider="getXlsPath")
    public void test2(String xlsPath){
        System.out.println(xlsPath);
    }
}
<suite name="tables" >
<test name="vendor" >
    <classes>
        <class name="Practise" ></class>
    </classes>
</test>
<suite name="tables" parallel="tests" >

在这种情况下,我无法获得套件名称--它没有执行。有人能帮我查一下套房的名字吗?

共有1个答案

齐意致
2023-03-14

您可以从ITestContext中访问Xml文件和当前Xml测试,这些测试可以注入到测试方法中:

@Test
public void f(ITestContext ctx) {
  String suiteName = ctx.getCurrentXmlTest().getXmlSuite().getName();
 类似资料:
  • 因为我是自动化测试的新手,所以我不能找出为什么会出现这个问题。我检查了所有语法错误,我觉得它 是正确的。但是我不能解决这个问题。这是我的xml文件,我正在尝试运行,但是得到了错误

  • 我无法在eclipse中使用testNG for Selenium2运行测试套件。TestNG似乎正在运行,但运行的测试总数始终为0。我可以直接使用selenium2从eclipse运行这个测试(以->Java应用程序运行)。我可以用@test、@beforeMethod、@afterMethod注释测试一个小程序的testNG

  • 请让我知道是否可以通过TestNG运行并行套件?

  • 主套房.java 对于每个测试套件,都有包含@Test的类 例如 TestSuite1.java TestClass1.java 所以我的问题是如何运行TestSuite1、TestSuite2

  • 我试图使用XML和TestNG运行一个测试套件,但是我总是同时使用Eclipse和命令行得到相同的消息: 该文件已正确读取,但测试似乎没有运行。 以下是我的testng.xml的内容: 这是我的目录结构在Eclipse中的样子: 此外,这也是我试图通过命令行运行测试套件的方式: 我尝试过通过eclipse清理项目,但似乎没有帮助。我也试过跑步: < code>mvn clean,但它也没有完成工作