使用TestNG的Selenium自动化中的"No tests found. Nothing was run"错误



下面是我在eclipse中使用Selenium编码的代码。

import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
class GoogleSearchTest {
@Test
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.gecko.driver","C:\Users\acer\Downloads\selenium\geckodriver.exe");
WebDriver driver =new FirefoxDriver();
driver.get("https://www.google.com/");
WebElement we1 = driver.findElement(By.name("q"));
we1.sendKeys("GMAIL");
we1.sendKeys(Keys.ENTER); 
WebDriverWait wait1 = new WebDriverWait(driver, 5);
wait1.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//h3[text()='E-mail - Sign in - Google Accounts']"))).click();
Thread.sleep(10000); 
driver.findElement(By.id("identifierId")).sendKeys("2017cs102@stu.ucsc.cmb.ac.lk");
driver.findElement(By.xpath("//*[@id='identifierNext']/div/span/span")).click();
Thread.sleep(10000);
driver.findElement(By.name("password")).sendKeys("mmalsha425@gmail.com");
driver.findElement(By.xpath("//*[@id='passwordNext']/div/span/span")).click();
}
}

它给出以下错误。

[TestNG] No tests found. Nothing was run
Usage: <main class> [options] The XML suite files to run

我已经安装了TestNG插件。我该怎么做才能解决这个问题?

更改主函数名称。使用TestNG时不应使用它

@Test
public void test() throws InterruptedException {
System.setProperty("webdriver.gecko.driver","C:\Users\acer\Downloads\selenium\geckodriver.exe");
WebDriver driver =new FirefoxDriver();

你不需要编写main()方法,TestNg 自己可以做到这一点。

class GoogleSearchTest {
@Test
public void test() throws InterruptedException{
//your code here
.....
}
}

如果您想从main()拨打电话,只需:

import org.testng.TestNG;
public class Master {
public static void main(String[] args) {
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { GoogleSearchTest.class });
testng.run();
}
}

但请注意,在课堂GoogleSearchTest不要public static void main放在@Test

此错误消息...

[TestNG] No tests found. Nothing was run
Usage: <main class> [options] The XML suite files to run

。意味着TestNG没有发现任何测试,因此没有执行任何测试。

<小时 />

测试NG

TestNG是一个基于注释的测试框架,它需要一个标记注释类型来指示方法是一种测试方法,并且应该由测试工具运行。因此,在使用 testng 时,您正在使用注释,并且不必显式调用main()方法。

<小时 />

解决方案

简单的解决方案是将main()方法替换为测试方法名称(例如test()(,并保留@Test注释,如下所示:

// your imports
class GoogleSearchTest {
@Test
public void test() throws InterruptedException {
System.setProperty("webdriver.gecko.driver","C:\Users\acer\Downloads\selenium\geckodriver.exe");
// other lines of code
}
}

尝试重构方法

public static void main(String[] args) throws InterruptedException {

喜欢这个:

public void search()
{
// -----your code----
}

相关内容

最新更新