使用TestNG和Java从另一个类调用方法

时间:2015-04-13 19:02:06

标签: java eclipse methods webdriver testng

运行作为TestNG运行的test2.java后,如果我将其作为Java应用程序运行,则会出现以下错误。错误是什么意思,任何人都可以使用TestNG和Java帮助我。我正在使用Webdriver和Eclipse,只想用这个简单的技巧来申请我的测试脚本。

  

SKIPPED:main org.testng.TestNGException:方法main需要1   参数但是在@Test注释中提供了0。

这是我的Test1.java代码

package firsttestngpackage;

import org.testng.annotations.Test;

@Test
public class Test1{
    public void message(){
        System.out.println("Test");
    }
}

这是我的Test2.java代码

package firsttestngpackage;

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

@Test
public class Test2{
    public static void main(String[] args){
        Test1 class1 = new Test1();
        class1.message();
    }
}

5 个答案:

答案 0 :(得分:2)

如果在类级别使用@Test,则所有公共方法都被视为测试方法。您需要向main方法提供parameters,因为它需要参数。

只需将其更改为public void main()

即可

答案 1 :(得分:1)

看起来你正在以错误的方式使用TestNG。你不需要java main方法。只需使用注释@Test,然后使用TestNG(org.testng.TestNG)运行类,并将.xml测试套件定义为Java Application或在Eclipse运行器中运行。 TestNG调用所有测试方法,因此您不必手动调用它。

答案 2 :(得分:0)

我通过删除“String [] args”

来实现它
package firsttestngpackage;

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

@Test
public class Test2{
    public void main(){
        Test1 class1 = new Test1();
        class1.message();
    }
}

答案 3 :(得分:0)

jaroslav是对的。你正在以错误的方式使用@Test注释。使用testNG框架时你不使用main方法运行test.u运行它作为TestNG测试

答案 4 :(得分:0)

首先,上述评论是正确的。如果使用testNG注释,请不要使用main方法。主要方法只能在@Beforeclass@Afterclass中使用。也不需要(String[] args)

如果您仍然遇到TestNg问题,

  1. 确保您已正确安装。

  2. 在第一个测试用例(@Test

  3. 之前使用此代码

    @BeforeTest
    public void setup () {
    System.setProperty("webdriver.chrome.driver", "*location of your driver*"); ChromeOptions options = new ChromeOptions(); options.addArguments("test-type"); options.addArguments("start-maximized"); options.addArguments("--js-flags=--expose-gc");
    options.addArguments("--enable-precise-memory-info"); options.addArguments("--disable-popup-blocking"); options.addArguments("--disable-default-apps"); options.addArguments("test-type=browser"); options.addArguments("disable-infobars"); driver = new ChromeDriver(options); driver.manage().deleteAllCookies(); }
    如果这有帮助,请告诉我。