Selenium TestNG配置失败

Selenium TestNG配置失败,selenium,configuration,testng,Selenium,Configuration,Testng,我试图从命令行运行一个简单的TestNG测试,它会出现配置错误。相同的TestNG测试将正确地从EclipseIDE运行。在命令行中,它不起作用。这是这个TestNG框架的一个严重限制,使得它在持续集成主题中不是很有用。如果您计划使用TestNG,请确保在将其用作测试框架之前,可以从命令行运行它。必须从EclipseIDE运行它是一个严重的限制 TestSuite_Bollosk Total tests run: 1, Failures: 0, Skips: 1 Configuration Fa

我试图从命令行运行一个简单的TestNG测试,它会出现配置错误。相同的TestNG测试将正确地从EclipseIDE运行。在命令行中,它不起作用。这是这个TestNG框架的一个严重限制,使得它在持续集成主题中不是很有用。如果您计划使用TestNG,请确保在将其用作测试框架之前,可以从命令行运行它。必须从EclipseIDE运行它是一个严重的限制

TestSuite_Bollosk
Total tests run: 1, Failures: 0, Skips: 1
Configuration Failures: 1, Skips: 1
public class test1 {
    public WebDriver d;
    @Parameters({"browsername","url"})
    @BeforeMethod
    public void browserselections(String broname,String URL) {

        System.out.println(broname);
        System.out.println(URL);

        if (broname.equalsIgnoreCase("ff")) {

            d = new FirefoxDriver();

        } else if (broname.equalsIgnoreCase("chrome")) {
            System.setProperty("webdriver.chrome.driver", "F:\\All jars\\chromedriver.exe");
         d = new ChromeDriver();

        }

        d.manage().window().maximize();
        d.get(URL);
    }

    @Test

    public void tc1() {

        d.findElement(By.id("lst-ib")).sendKeys("testing");
    }

}

below is my xml code

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" configfailurepolicy="skip">
    <test name="Test1">
    <parameter name="browsername" value="ff"/>
    <parameter name="URL" value="https://www.google.com"/>
        <classes>
            <class name="testng.test1" />
        </classes>
    </test>

    <test name="Test2">
    <parameter name="browsername" value="chrome"></parameter>
        <classes>
            <class name="testng.test1" />
        </classes>
    </test>
</suite> <!-- Suite -->enter code here
命令行语法为:

java -cp "C:\correctclpath1\*;C:\correctclpath2\*" org.testng.TestNG "C:\anotherpath\TS_simpletest.xml"
测试如下所示:

package pkgTSBollosk;

import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class TC_Bollosk 
{
WebDriver driver;
@Parameters({"param1","param2"})
@Test
public void bollosktestmethod(String param1, String param2) throws InterruptedException 
{
    assert(true);
    System.out.println("test output for bollosk test:");
}
@BeforeTest
  public void beforeTest() throws IOException {
      driver = new FirefoxDriver(); 
      driver.manage().timeouts().implicitlyWait(2,TimeUnit.SECONDS);
          }
  @AfterMethod
  public void afterTest() {
      driver.quit();
      driver = null; 
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Bollosk Test Suit" parallel="false">
 <test name="Bolluks test name">
  <parameter name="Param1" value="not - used"></parameter>
  <parameter name="Param2" value="not - used"></parameter>
    <classes>
      <class name="pkgTSBollosk.TC_Bollosk">
      <methods>
      <include name = "bollosktestmethod"></include>
      </methods>
      </class>
    </classes>
  </test> 
</suite>
TS_simpletest.xml文件如下所示:

package pkgTSBollosk;

import java.io.IOException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class TC_Bollosk 
{
WebDriver driver;
@Parameters({"param1","param2"})
@Test
public void bollosktestmethod(String param1, String param2) throws InterruptedException 
{
    assert(true);
    System.out.println("test output for bollosk test:");
}
@BeforeTest
  public void beforeTest() throws IOException {
      driver = new FirefoxDriver(); 
      driver.manage().timeouts().implicitlyWait(2,TimeUnit.SECONDS);
          }
  @AfterMethod
  public void afterTest() {
      driver.quit();
      driver = null; 
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Bollosk Test Suit" parallel="false">
 <test name="Bolluks test name">
  <parameter name="Param1" value="not - used"></parameter>
  <parameter name="Param2" value="not - used"></parameter>
    <classes>
      <class name="pkgTSBollosk.TC_Bollosk">
      <methods>
      <include name = "bollosktestmethod"></include>
      </methods>
      </class>
    </classes>
  </test> 
</suite>

用Assert.assertTrue替换Assert并导入org.testNG.Assert修复了该问题。新手的陷阱。。。。。我收回我之前关于严重限制的声明。

公共类测试1{
TestSuite_Bollosk
Total tests run: 1, Failures: 0, Skips: 1
Configuration Failures: 1, Skips: 1
public class test1 {
    public WebDriver d;
    @Parameters({"browsername","url"})
    @BeforeMethod
    public void browserselections(String broname,String URL) {

        System.out.println(broname);
        System.out.println(URL);

        if (broname.equalsIgnoreCase("ff")) {

            d = new FirefoxDriver();

        } else if (broname.equalsIgnoreCase("chrome")) {
            System.setProperty("webdriver.chrome.driver", "F:\\All jars\\chromedriver.exe");
         d = new ChromeDriver();

        }

        d.manage().window().maximize();
        d.get(URL);
    }

    @Test

    public void tc1() {

        d.findElement(By.id("lst-ib")).sendKeys("testing");
    }

}

below is my xml code

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" configfailurepolicy="skip">
    <test name="Test1">
    <parameter name="browsername" value="ff"/>
    <parameter name="URL" value="https://www.google.com"/>
        <classes>
            <class name="testng.test1" />
        </classes>
    </test>

    <test name="Test2">
    <parameter name="browsername" value="chrome"></parameter>
        <classes>
            <class name="testng.test1" />
        </classes>
    </test>
</suite> <!-- Suite -->enter code here
公共网络驱动程序d; @参数({“browsername”,“url”}) @预处理法 公共无效浏览器选择(字符串broname、字符串URL){ System.out.println(broname); System.out.println(URL); if(broname.equalsIgnoreCase(“ff”)){ d=新的FirefoxDriver(); }否则如果(broname.equalsIgnoreCase(“铬”)){ System.setProperty(“webdriver.chrome.driver”,“F:\\All jars\\chromedriver.exe”); d=新的色度驱动器(); } d、 管理().window().maximize(); d、 获取(URL); } @试验 公共无效tc1(){ d、 findElement(By.id(“lst ib”))。sendKeys(“测试”); } } 下面是我的xml代码 在这里输入代码
我面临同样的问题,我注意到我所有的jar文件都在不同的子文件夹中。将它们全部移动到一个库文件夹中,并使用相同的命令执行


java-cp“%projectLocation%/Library/*”;%projectLocation%/target/classes/“org.testng.testng testng.xml

尝试testng配置策略。添加参数configfailurepolicy=“continue”如果您希望继续处理配置故障,请选择configfailurepolicy=“skip”。范例

  <suite name="Bollosk Test Suit" configfailurepolicy="continue">


我们使用Ant定期从CMD运行testng。从来没有遇到过问题。顺便说一句,你的问题在哪里?stacktrace是什么?虽然这段代码可以回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,只使用代码的答案是没有用的。