Selenium:方法main需要1个参数,但@Test注释中提供了0

时间:2017-05-22 10:09:53

标签: java testng

使用TestNG执行脚本时,它正在跳过主要内容。下面是一个示例代码,类似于我的代码。如果我删除String[] args,则代码正在使用TestNG,但删除了作为java应用程序选项运行。我怎么能克服这个?

Package tests;

import org.testng.annotations.Test;

@Test
public class SearchText {
    public void createzoo(String[] args) {  
        String[] elems = {"lion", "tiger", "duck"};  
        System.out.println(elems[0]);
        System.out.println(elems[1]);
        System.out.println(elems[2]);
    }
}

3 个答案:

答案 0 :(得分:0)

以下是您的问题的答案:

当您想要执行Java项目时,您有两种方法可以执行此操作:

  1. 执行包含main方法的Java文件:

    public static void main(String[] args)
    

    您的Java程序将从main方法中的第1行开始执行。

  2. 如果您已将TestNG库集成到Java项目中,那么您将获得一种执行Java项目的新方法。整合TestNG后,完全不需要像以前的情况那样编写main方法。在这种情况下,您需要执行包含@Test注释TestNG作为TestNG Test的类文件。 TestNG将根据您指定的逻辑逐个执行标有@Test注释的方法。以TestNG Test执行Java项目后,将使用名称testng-customsuite.xml生成xml文件。

  3. 接下来,您可以使用IDE功能Convert to TestNG将Java项目转换为TestNG特定项目。在执行此操作时,您将通过在项目级别创建的名称testng.xml观察xml文件。现在使用testng.xml您还可以将项目作为TestNG Suite

  4. 执行

    如果这回答你的问题,请告诉我。

答案 1 :(得分:0)

如果在类上设置@Test,则表示该类的所有方法都是测试方法,包括main

如果测试方法有params,那么TestNG必须知道如何注射它们。

目前,无法通过注释排除某些方法,并且已存在与问题相关的问题:https://github.com/cbeust/testng/issues/1405

作为替代方案,您只能注释方法而不是类,它应该可以工作。

答案 2 :(得分:0)

当代码中误用@Test注释时,会遇到此错误“XYZ方法需要1个参数,但@Test注释中提供了0”。

在您的情况下,您可以将应用程序作为Java应用程序或TestNG应用程序运行。使用TestNG时,不需要main,您可以使用run作为TestNG。当作为java应用程序运行时,将需要main方法。

  
    
      
        
          
            

如果我删除String [] args,那么代码正在使用TestNG,但是删除了作为java应用程序选项运行。

          
        
      
    
  

删除String [] args时,不会将其视为运行java应用程序所需的主要方法。这只是任何常规方法。因此它正在使用TestNG但是因为java应用程序选项不适用而运行。