Selenium TestNG配置失败
我试图从命令行运行一个简单的TestNG测试,它会出现配置错误。相同的TestNG测试将正确地从EclipseIDE运行。在命令行中,它不起作用。这是这个TestNG框架的一个严重限制,使得它在持续集成主题中不是很有用。如果您计划使用TestNG,请确保在将其用作测试框架之前,可以从命令行运行它。必须从EclipseIDE运行它是一个严重的限制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
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是什么?虽然这段代码可以回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,只使用代码的答案是没有用的。