IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Test unitaire avec TestNG


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut Test unitaire avec TestNG
    Bonjour à tous,
    J'ai besoin de passer en paramètre une variable à ma méthode de test.

    J’ai le message d'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     Parameter 'browser' is required by @Configuration on method launchapp but has not been marked @Optional or defined 
    org.testng.TestNGException
    Parameter 'browser' is required by @Configuration on method launchapp but has not been marked @Optional or defined
    	at org.testng.internal.Parameters.createParameters(Parameters.java:165)
    	at org.testng.internal.Parameters.createParameters(Parameters.java:372)
    	at org.testng.internal.Parameters.createConfigurationParameters(Parameters.java:90)
    	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:199)
    	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:140)
    	at org.testng.TestRunner.beforeRun(TestRunner.java:645)
    	at org.testng.TestRunner.run(TestRunner.java:613)
    	at org.testng.SuiteRunner.runTest(SuiteRunner.java:357)
    	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352)
    	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310)
    	at org.testng.SuiteRunner.run(SuiteRunner.java:259)
    	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1199)
    	at org.testng.TestNG.runSuitesLocally(TestNG.java:1124)
    	at org.testng.TestNG.run(TestNG.java:1032)
    	at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:70)
    	at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:109)
    	at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
    	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
    	at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
    	at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
    	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
    Ci-dessous mon ficher XML avec le paramètre qui devrais passer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="Suite" parallel="tests">
     
       <test name="FirefoxTest">
       <parameter name="browser" value="firefox" />
          <classes>
             <class name="ca.dj.TestNGClass" />
          </classes>
       </test>
     
       <test name="ChromeTest">
       <parameter name="browser" value="chrome" />
          <classes>
             <class name="ca.dj.TestNGClass" />
          </classes>
       </test>
     
       <test name="IETest">
       <parameter name="browser" value="ie" />
          <classes>
             <class name="ca.dj.TestNGClass" />
          </classes>
       </test>
     
    </suite>

    Merci! de votre aide.

  2. #2
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut
    up! please

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Par défaut
    On peut voir ton test?

    Edit : Et le code que tu souhaite tester?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    et ton pom.xml vu que c'est démarré par maven.

  5. #5
    Membre éprouvé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Par défaut
    mon pom.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>ca.dj</groupId>
        <artifactId>SelenumTest1</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <packaging>jar</packaging>
        <dependencies>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>6.9.4</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-remote-driver</artifactId>
                <version>2.33.0</version>
                <scope>test</scope>
                <type>jar</type>
            </dependency>
        </dependencies>
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.7</maven.compiler.source>
            <maven.compiler.target>1.7</maven.compiler.target>
        </properties>
    </project>
    mon code de test fonctionnel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    package ca.dj;
     
    import org.openqa.selenium.*;
    import org.openqa.selenium.remote.RemoteWebDriver;
    import org.openqa.selenium.remote.DesiredCapabilities;
     
    import org.testng.annotations.AfterTest;
    import org.testng.annotations.BeforeTest;
    import org.testng.annotations.Parameters;
    import org.testng.annotations.Test;
     
    import java.net.URL;
    import java.util.concurrent.TimeUnit;
    import java.net.MalformedURLException;
     
    public class TestNGClass
    {
       public WebDriver driver;
       public String URL, Node;
       protected ThreadLocal<RemoteWebDriver> threadDriver = null;
     
      @Parameters("browser")
       @BeforeTest
        public void launchapp(String browser) throws MalformedURLException
       {  //String browser = "firefox";
          String URL = "http://www.calculator.net";
     
          if (browser.equalsIgnoreCase("firefox"))
          {
             System.out.println(" Executing on FireFox");
             String Node = "http://10.196.138.184:5555/wd/hub";
             DesiredCapabilities cap = DesiredCapabilities.firefox();
             cap.setBrowserName("firefox");
     
             driver = new RemoteWebDriver(new URL(Node), cap);
             // Puts an Implicit wait, Will wait for 10 seconds before throwing exception
             driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
     
             // Launch website
             driver.navigate().to(URL);
             driver.manage().window().maximize();
          }
          else if (browser.equalsIgnoreCase("chrome"))
          {
             System.out.println(" Executing on CHROME");
             DesiredCapabilities cap = DesiredCapabilities.chrome();
             cap.setBrowserName("chrome");
             String Node = "http://10.196.138.184:5557/wd/hub";
             driver = new RemoteWebDriver(new URL(Node), cap);
             driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
     
             // Launch website
             driver.navigate().to(URL);
             driver.manage().window().maximize();
          }
          else if (browser.equalsIgnoreCase("ie"))
          {
             System.out.println(" Executing on IE");
             DesiredCapabilities cap = DesiredCapabilities.chrome();
             cap.setBrowserName("ie");
             String Node = "http://10.196.138.184:5558/wd/hub";
             driver = new RemoteWebDriver(new URL(Node), cap);
             driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
     
             // Launch website
             driver.navigate().to(URL);
             driver.manage().window().maximize();
          }
          else
          {
             throw new IllegalArgumentException("The Browser Type is Undefined");
          }
       }
     
       @Test
       public void calculatepercent()
       {
          // Click on Math Calculators
          driver.findElement(By.xpath("(//a[contains(text(),'Math')])[2]")).click();     	
          // Click on Percent Calculators
          driver.findElement(By.xpath("(//a[contains(text(),'Percentage')])[2]")).click();
          // Enter value 10 in the first number of the percent Calculator
          driver.findElement(By.id("cpar1")).sendKeys("10");
          // Enter value 50 in the second number of the percent Calculator
          driver.findElement(By.id("cpar2")).sendKeys("50");
     
          // Click Calculate Button driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click();
          // Get the Result Text based on its xpath
          String result = driver.findElement(By.xpath("//div[@id='content']/table/tbody/tr[2]/td/input[2]")).getText();
          // Print a Log In message to the screen
          System.out.println(" The Result is " + result);
          if(result.equals("5"))
          {
             System.out.println(" The Result is Pass");
          }
          else
          {
             System.out.println(" The Result is Fail");
          }
       }
     
       @AfterTest
       public void closeBrowser()
       {
          driver.quit();
       }
    }
    Merci! de votre aide.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu dois mettre ça dans ton pom, si tu veux utiliser une suite xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            <configuration>
              <suiteXmlFiles>
                <suiteXmlFile>testng.xml</suiteXmlFile>
              </suiteXmlFiles>
            </configuration>
    Sinon, il va juste lancer toutes les classes de src/test annotées, sans configuration.

Discussions similaires

  1. Test unitaire avec DUnit
    Par stef_chand dans le forum Outils
    Réponses: 1
    Dernier message: 07/09/2007, 15h40
  2. Test unitaire avec C# et nunit
    Par jeromechezgdf dans le forum C#
    Réponses: 6
    Dernier message: 16/07/2007, 11h51
  3. Tests unitaires avec vbUnit sur des contrôles utilisateurs
    Par Patrick Mortas dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 07/09/2006, 18h06
  4. test unitaire avec python
    Par Abla23 dans le forum Zope
    Réponses: 4
    Dernier message: 30/06/2006, 13h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo