首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Listners打印参数而不是值。另外,当我的字符串返回null作为每个输出的前缀时,有什么问题吗?

如何使用Listners打印参数而不是值。另外,当我的字符串返回null作为每个输出的前缀时,有什么问题吗?
EN

Stack Overflow用户
提问于 2018-09-06 02:17:16
回答 2查看 28关注 0票数 1

我想使用Listners打印传递给此方法的参数。

代码语言:javascript
复制
@Test
@Parameters({"browsername","URL", "ebrowse","eURL"})
public static void LaunchApplication(String browsername, String URL, String ebrowse, String eURL ) throws InterruptedException, IOException{

我使用了以下代码:

代码语言:javascript
复制
public void onTestSuccess(ITestResult result) {
System.out.println("\nThe method is in " +result.getTestClass().getName());
        String paramet = null;
        for(Object parameter : result.getParameters()){ 
        paramet += parameter.toString() +",";
        }
        System.out.println("The parameters of the method are: " +paramet);
}

输出:

代码语言:javascript
复制
The parameters of the method are: nullch32,http://localhost:90/fintech/login.html,ch32,http://localhost:90/fintech/login.html,

我得到的输出是传递给参数的值。它还会打印我用来初始化字符串的null。如何消除空值,只打印参数而不打印值?

EN

回答 2

Stack Overflow用户

发布于 2018-09-06 03:44:40

要删除null,只需使用"“(空字符串)初始化字符串即可。

代码语言:javascript
复制
String paramet = "";

我不认为有一种方法可以打印参数名称...只有值,因为这是TestNG提供的。我不知道你为什么要这样做,因为参数名不会改变,只会改变值。

票数 0
EN

Stack Overflow用户

发布于 2018-09-06 06:12:05

您正在尝试仅获取参数值,即@Parameters注释生成的参数值。您实际需要的是使用反射访问注释本身,并提取传递给它的配置属性。

要获取参数名称,您应该具有类似于以下代码的内容:

代码语言:javascript
复制
String[] parameters = testResult.getMethod().getMethod().getAnnotation(Parameters.class).value();
System.out.println("Parameter 1: " + parameters[0]); //will print browsername
System.out.println("Parameter 2: " + parameters[1]); //will print URL
System.out.println("Parameter 3: " + parameters[2]); //will print ebrowse
System.out.println("Parameter 4: " + parameters[3]); //will print eURL
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52191241

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档