2017-02-17 16 views
-1

В селене почему результат
По умолчанию тест
Тестов запуска: 1, Отказы: 0, Кузов: Неудачи 1
конфигурации: 1, Кузов: 0 приходит? Почему это так. Я пытался запустить тест.Неудачи Селена конфигурации во время работы TestNG

public class NewTest { 
WebDriver driver; 
@BeforeTest 
@Parameters({"browser"}) 
public void setup(@Optional String browser) throws Exception{ 
if(browser.equalsIgnoreCase("Firefox")){ 

    driver = new FirefoxDriver(); 
    } 
else if(browser.equalsIgnoreCase("Chrome")){ 
System.setProperty("webdriver.chrome.driver","path"); 
driver = new ChromeDriver(); 
} 
else if(browser.equalsIgnoreCase("IE")){ 
System.setProperty("webdriver.ie.driver","path"); 
driver = new InternetExplorerDriver(); 
} 
else{ 
throw new Exception("Browser is not correct"); 
} 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
} 
@Test 

public void testParameterWithXML() throws InterruptedException{ 

    driver.get("http://demo.guru99.com/V4/"); 
    WebElement userName = driver.findElement(By.name("uid")); 
    userName.sendKeys("guru99"); 
    WebElement password = driver.findElement(By.name("password")); 
    password.sendKeys("guru99"); 
}} 

Это мой код. Я пытался запустить это, но получал ошибки.

FAILED CONFIGURATION: @BeforeTest setup(null) 
java.lang.NullPointerException 
at zproject.NewTest.setup(NewTest.java:21) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104) 
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:515) 
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:217) 
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:144) 
at org.testng.TestRunner.beforeRun(TestRunner.java:634) 
at org.testng.TestRunner.run(TestRunner.java:602) 
at org.testng.SuiteRunner.runTest(SuiteRunner.java:387) 
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382) 
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340) 
at org.testng.SuiteRunner.run(SuiteRunner.java:289) 
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293) 
at org.testng.TestNG.runSuitesLocally(TestNG.java:1218) 
at org.testng.TestNG.runSuites(TestNG.java:1133) 
at org.testng.TestNG.run(TestNG.java:1104) 
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) 
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236) 
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81) 

Также

теста по умолчанию Тестов запуска: 1, Отказы: 0, Кузов: 1 конфигурации Отказы: 1, Кузов: 0

suite.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "testng.org/testng-1.0.dtd">; 
<suite name="TestSuite" thread-count="2" parallel="tests" > 
    <parameter name="browser" value="Chrome" /> 
    <test name="ChromeTest"> 
    <classes> 
    <class name="zproject.NewTest"></class> 
    </classes> 
    </test> 
    <parameter name="browser" value="Firefox" /> 
    <test name="FirefoxTest"> 
    <classes> 
     <class name="zproject.NewTest"></class> 
    </classes> 
    </test> 
    <parameter name="browser" value="IE" /> 
    <test name="IETest"> 
    <classes> 
     <class name="zproject.NewTest"> </class> 
    </classes> 
    </test> 
</suite> 
+0

Вы можете поделиться своим файлом testng.xml, это поможет людям понять, есть ли какие-либо проблемы с xml-файлом. –

+0

Вы также должны поделиться некоторым кодом. – juherr

+0

@juherr Я приложил код. –

ответ

0

@Optional означает, что значение будет null, если вы его не настроите.

В вашем случае, я думаю, вы этого не сделали, а затем значение browser - null и производит NPE.

Как вы делаете исключение в случае плохого браузера, просто удалите @Optional и TestNG завершится с ошибкой, как ожидалось.

Далее, вы будете нуждаться в suite.xml:

<suite name="My suite"> 
    <parameter name="browser" value="Firefox"/> 
    <test name="Simple example"> 
    <classes> 
     <class name="NewTest"/> 
    </classes> 
    </test> 
</suite> 

Посмотрите на the parameter part of the documentation тоже.

+0

Вначале я не отмечал браузер как необязательный. Но у меня есть ошибка. Параметр «браузер» требуется от BeforeTest при настройке метода, но не был помечен как «0опосредственный» или « –

+0

<имя пакета = "TestSuite" thread-count = "2" parallel = "tests"> <параметр name = "browser" value = "Chrome" /> <тест имя = "ChromeTest"> <имя класса = "zproject.NewTest"> <имя параметра = "браузер" значение = "Firefox" /> <тест имя = "FirefoxTest"> <имя класса = "zproject.NewTest"> <имя параметра = "Браузер" значение = "IE" /> <тест имя = "IETest"> <имя класса =» zproject.NewTest ">

+0

Он должен работать без' @ Optional' и с ванной. – juherr

Смежные вопросы