TestNG XML文件未执行

时间:2014-08-01 16:18:30

标签: java xml eclipse selenium testng

我在Eclipse中使用Java中的TestNG框架为我的网站创建了一个登录测试,并希望通过在命令提示符下运行它来通过XML文件执行我的测试。

我要测试的网站名称名为“我的网站”。我的项目的根文件夹是Test My Website,我的文件夹的文件系统在以下屏幕截图中说明:

Root folder structure

我已按照here上的说明进行操作,并相应地安排了我的项目文件系统。

PS:我的项目根目录中也存在bin文件夹,Java编译器使用它来存储.class文件,但不会显示在Eclipse的程序包中资源管理器。

TestClass1.java 的源代码是,

package testngsample;

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.testng.annotations.AfterClass;

public class TestClass1 {
    protected static WebDriver driver;
    protected static String result;

    @BeforeClass
    public void setup() {
        driver = new ChromeDriver();
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.manage().window().maximize();
    }

    @Test
    void loginTest() {
        try {
            driver.get("https://test.rockon.me");
            driver.findElement(By.id("btnLogin")).click();
            driver.findElement(By.id("txtUserName")).sendKeys("max_marchisio");
            driver.findElement(By.id("txtPassword")).sendKeys("Rockon123");
            driver.findElement(By.id("GoArrow")).click();
            Thread.sleep(15000);
            result = driver.getTitle();
            Assert.assertEquals(result, "Home | RockON");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    @AfterClass
    public void teardown() {
        driver.close();
        driver.quit();
    }

}

TestNG.xml 文件的源代码是,

<?xml version="1.0" encoding="UTF-8"?>
<suite name="My sample Suite">
    <test name="Search test">
        <classes>
            <class name="TestClass1" />
        </classes>
    </test>
</suite>

此处的问题是,尽管遵循上面提供的链接中给出的正确说明,但我无法执行TestNG.xml文件。为了从命令提示符执行文件,我在命令提示符下执行以下命令。

1)cd C:\Users\rugved.mandrekar\workspace\Test My Website

2)set ProjectPath="C:\Users\rugved.mandrekar\workspace\Test My Website"

3)set classpath=%ProjectPath%\bin;%ProjectPath%\lib\*

4)java -cp org.testng.TestNG %ProjectPath%TestNG.xml

并在我的命令提示符

中获取以下输出(字面意思)
Error: Could not load find or load main class C:\Users\rugved.mandrekar\workspace\Test My Website"TestNG.xml

我可以通过为Eclipse创建TestNG运行配置来执行 TestNG.xml文件来运行脚本,它还可以生成输出并完美地生成报告,但为什么是这不是从命令提示符发生的吗?

任何人都可以告诉我我哪里错了?最早的回复将受到高度赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

好吧,在将我的头撞在砖墙上之后,我终于找到了解决问题的解决方法。我刚刚更改了我的XML文件来运行包的脚本而不是单个类。因此我的 TestNG.xml 文件已更改为

<?xml version="1.0" encoding="UTF-8"?>
<suite name="My sample Suite">
    <test name="Search test">
        <packages>
            <package name="testngsample" />
        </packages>
    </test>
</suite>

我还通过执行以下命令

从命令提示符设置项目的类路径
java -cp "C:\Users\rugved.mandrekar\workspace\Test My Website\lib\*;C:\Users\rugved.mandrekar\workspace\Test My Website\bin" org.testng.TestNG TestNG.xml