Les paramètres de passe par défaut de la valeur dans TestNG
Je suis confronté à un étrange problème. Avant d'écrire ici, j'ai fait quelques recherches sur ce point, mais ne parvenez pas à résoudre le problème.
Je suis de passage des paramètres, mais il prend la valeur par défaut pour le paramètre c'est à dire "non-Valeur".
Voici mon code
paquet rugueuse; import org.testng.les annotations.AfterMethod; import org.testng.les annotations.Facultatif; import org.testng.les annotations.Les paramètres; import org.testng.les annotations.Test; import org.testng.les annotations.BeforeMethod; import org.testng.Affirmer; importer java.util.regex.Motif; importer java.util.de façon concomitante.TimeUnit; import org.junit.*; import static org.hamcrest.CoreMatchers.*; import org.openqa.le sélénium.*; import org.openqa.le sélénium.le chrome.ChromeDriver; import org.openqa.le sélénium.firefox.FirefoxDriver; import org.openqa.le sélénium.c'est à dire.InternetExplorerDriver; import org.openqa.le sélénium.de soutien.l'interface utilisateur.Sélectionnez; public class Navigateurs { privé WebDriver conducteur; private String baseUrl; private boolean acceptNextAlert = true; privé de StringBuffer verificationErrors = new StringBuffer(); @BeforeMethod public void tearDown1() throws Exception { Système.out.println("Bonjour de départ"); } @Test @Paramètres({ "NAVIGATEUR" }) public void setUp(@Facultatif Chaîne NAVIGATEUR) throws Exception { si(NAVIGATEUR.equalsIgnoreCase("FF")) { pilote = new FirefoxDriver(); } d'autre si(NAVIGATEUR.equalsIgnoreCase("IE")) { Système.setProperty("webdriver.c'est à dire.le pilote", "g:/Selenium Jar Files/IEDriverServer.exe"); pilote = new InternetExplorerDriver(); } baseUrl = "http://book.theautomatedtester.co.uk/"; le pilote.gérer().délais d'attente().implicitlyWait(30, TimeUnit.SECONDES); Système.out.println("Bonjour starting1111"); le pilote.get(baseUrl+"/chapitre 1"); le pilote.findElement(Par.id("radiobutton")).cliquez sur(); Sélectionnez(pilote.findElement(Par.id("selecttype"))).selectByVisibleText("Selenium RC"); } @AfterMethod public void tearDown() throws Exception { Chaîne verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { Affirmer.fail(verificationErrorString); } } private boolean isElementPresent(Par) { try { le pilote.findElement(par); return true; } catch (NoSuchElementException e) { return false; } } private boolean isAlertPresent() { try { le pilote.switchTo().alert(); return true; } catch (NoAlertPresentException e) { return false; } } private String closeAlertAndGetItsText() { try { Alerte alerte = pilote.switchTo().alert(); Chaîne alertText = alerte.getText(); si (acceptNextAlert) { l'alerte.accept(); } else { l'alerte.rejeter(); } retour alertText; } finally { acceptNextAlert = true; } } }
Le langage XML utilisé ici est
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="True">
<test name="Test">
<parameter name = "BROWSER" value="FF"/>
<classes>
<class name="rough.Browsers"/>
</classes>
<test name="Test">
<parameter name = "BROWSER" value="IE"/>
<classes>
<class name="rough.Browsers"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
Lorsque j'exécute le code d'erreur:
[TestNG] Running:
C:\Users\Administrator\AppData\Local\Temp\testng-eclipse-2137105747\testng-customsuite.xml
Hello starting
FAILED: setUp("not-found")
java.lang.NullPointerException
at rough.Browsers.setUp(Browsers.java:55)
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:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:334)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
- Quelqu'un peut-il m'aider iam ne pas comprendre pourquoi iam arriver comme "sans valeur"
- je vois ce param :Exception in thread "main" com.beust.jcommander.ParameterException: option Inconnue: -serport
Vous devez vous connecter pour publier un commentaire.
De testng de la documentation, c'est comment @optionnel est utilisé.
Essayer en modifiant votre code en conséquence.
Je pense que cela devrait résoudre le problème. Si cela ne fonctionne toujours pas, alors déclarer les paramètres à la suite de la balise de niveau dans testng.xml et de le tester.