【问题标题】:Calling a method from another class using TestNG and Java使用 TestNG 和 Java 从另一个类调用方法
【发布时间】:2015-04-13 19:02:06
【问题描述】:

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

跳过: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();
    }
}

【问题讨论】:

    标签: java eclipse methods webdriver testng


    【解决方案1】:

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

    只要改成public void main()

    【讨论】:

    • 这不只适用于返回 void 的方法吗?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      我通过删除“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();
          }
      }
      

      【讨论】:

        【解决方案4】:

        jaroslav 是对的。您以错误的方式使用 @Test 注释。在使用 testNG 框架时,您没有使用 main 方法来运行 test.u 将其作为 TestNG 测试运行

        【讨论】:

        • 好的,谢谢。你们是对的,我在我的 TestNG 测试中不使用 main 方法。我能够使用 main 方法从不同的类调用方法。所以基本上将 main() 替换为其他东西,它也可以工作。
        【解决方案5】:

        首先上面的cmets是对的。如果您使用 testNG 注释,请不要使用 main 方法。 main 方法只能用于@Beforeclass@Afterclass。也不需要(String[] args)

        如果您仍然面临 TestNg 的问题,

        1. 确保已正确安装。

        2. 在您的第一个测试用例之前使用此代码 (@Test)

        @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(); }
        让我知道这是否有帮助。

        【讨论】:

          猜你喜欢
          • 2019-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多