使用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]);
}
}
答案 0 :(得分:0)
以下是您的问题的答案:
当您想要执行Java项目时,您有两种方法可以执行此操作:
执行包含main
方法的Java文件:
public static void main(String[] args)
您的Java程序将从main
方法中的第1行开始执行。
如果您已将TestNG
库集成到Java项目中,那么您将获得一种执行Java项目的新方法。整合TestNG
后,完全不需要像以前的情况那样编写main
方法。在这种情况下,您需要执行包含@Test
注释TestNG
作为TestNG Test
的类文件。 TestNG将根据您指定的逻辑逐个执行标有@Test
注释的方法。以TestNG Test
执行Java项目后,将使用名称testng-customsuite.xml
生成xml文件。
接下来,您可以使用IDE功能Convert to TestNG
将Java项目转换为TestNG
特定项目。在执行此操作时,您将通过在项目级别创建的名称testng.xml
观察xml文件。现在使用testng.xml
您还可以将项目作为TestNG Suite
如果这回答你的问题,请告诉我。
答案 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应用程序选项不适用而运行。