TestNG配置失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TestNG配置失败相关的知识,希望对你有一定的参考价值。

我试图从命令行运行一个简单的TestNG测试,它会因配置失败而出错。相同的TestNG测试将从Eclipse IDE正确运行。从命令行它不起作用。这是此TestNG框架的严重限制,使其在持续集成主题中不可用。如果您打算使用TestNG,请确保在承诺将其用作测试框架之前,可以从命令行运行它。必须从Eclipse IDE运行它是一个严重的限制。

TestSuite_Bollosk
Total tests run: 1, Failures: 0, Skips: 1
Configuration Failures: 1, Skips: 1

命令行语法是:

java -cp "C:correctclpath1*;C:correctclpath2*" org.testng.TestNG "C:anotherpathTS_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; 
  }
}

TS_simpletest.xml文件如下所示:

<?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代替断言并导入org.testNG.assert修复了问题。新手的陷阱.....我收回了我之前关于严重限制的陈述。

另一答案
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
另一答案

我遇到了同样的问题,我注意到我的所有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">

以上是关于TestNG配置失败的主要内容,如果未能解决你的问题,请参考以下文章

当 @BeforeTest 方法失败时,为啥它没有在 testng-failed.xml 中列出?

为什么我的'等待方法'没有使TestNG测试用例失败?

不是失败的TestNG失败

TestNG常用校验 Assert类

Appium失败截图及重试机制封装

在黄瓜 java+testng 中自动重新运行失败的唯一场景