web-dev-qa-db-fra.com

TestNG ne lance pas de tests dans la suite de tests

J'essaie d'exécuter une suite de tests en utilisant XML et TestNG, mais je reçois toujours le même message en utilisant à la fois: Eclipse et la ligne de commande:

[TestNG] Running:
  /Users/achavez/Programs/Selenium/Java/src/tests/resources/testng.xml


===============================================
TestingSuite1
Total tests run: 0, Failures: 0, Skips: 0
===============================================

Le fichier est lu correctement, mais il semble que les tests ne soient pas en cours d'exécution.

Voici le contenu de mon testng.xml:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestingSuite1" verbose="1">
    <test name="Test1"  >
        <packages>
            <package name="tests"/>
        </packages>
    </test>
</suite>

et voici à quoi ressemble la structure de mon répertoire dans Eclipse:

TestNG Directory Structure in Eclipse

En outre, c'est également ainsi que j'essaie d'exécuter la suite de tests via la ligne de commande:

Java -jar /Applications/Zend\ Studio.app/Contents/Resources/Java/plugins/org.testng.Eclipse_6.8.6.20141201_2240/lib/testng.jar src/tests/resources/testng.xml

J'ai essayé de nettoyer le projet via Eclipse, et cela n'a pas semblé aider. J'ai aussi essayé de courir:

mvn clean mais il n'a pas fait le travail non plus.

Toute aide me pointant dans la bonne direction sera grandement appréciée!

12
ILikeTacos

Vous pouvez également vérifier les importations d'annotations de test importées, ce qui devrait être:

import org.testng.annotations.Test;
@Test
public myTest(){ ... }

et pas par exemple:

import org.junit.Test;
20
teejay

J'ai dû changer mon modificateur d'accès de méthode en public de privé pour le faire fonctionner.

9
Sindhu

Apparemment, TestNG a tort quant à la génération du fichier XML pour la suite de tests.

Même si j'ai suivi leurs instructions à la lettre, mes tests n'étaient pas en cours. Je me suis retrouvé avec ce testng.xml fichier et mes tests ont commencé à s'exécuter:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestingSuite" parallel="none">
  <test name="Test1">
    <classes>
      <class name="tests.Page1"/>
    </classes>
  </test>
    <test name="Test 2">
        <classes>
            <class name="tests.Page2"/>
        </classes>
    </test>
</suite>
4
ILikeTacos

J'ai rencontré un problème similaire et il a été résolu en effectuant un nettoyage de projet dans Eclipse (Projet-> Nettoyer-> Nettoyer le projet sélectionné)

3
Yolan Moodley

Dans mon cas, l'annotation @Test a été importée automatiquement par IDE as import org.junit.Test.

Après l'avoir changé en import org.testng.annotations.Test les tests ont été correctement détectés.

1
Arwen

Il y avait deux problèmes dans le code:
1. En effet, ma méthode @Test appelait une autre méthode qui retournera un booléen. Une fois que j'ai commenté le même @Test et la même méthode, tout le XML testNG a commencé à fonctionner.
2. La deuxième erreur était, j'utilisais ce qui suit, c'était une mauvaise affectation des classes Poi. Workbook WB = nouveau XSSFWorkbook (FIS); Feuille WSh = WB.getSheetAt (1); J'ai changé ce qui précède en dessous: XSSFWorkbook WB = nouveau XSSFWorkbook (FIS); XSSFSheet WSh = WB.getSheetAt (1); Après les deux corrections ci-dessus, le script a commencé à fonctionner.

1
Pratilipi Behera

J'étais confronté au même problème, j'ai mis à jour/installé TestNG à partir du marché Eclipse, cela a fonctionné pour moi

0
Pavan Test

si la méthode @Test est publique boolean () avec le type de retour true/false, elle ne s'exécute pas .. étrange mais fonctionnait dans mon cas.

0
viky

J'ai eu ce même problème, voici ce qui a fonctionné pour moi:

  1. J'ai mis toutes les bibliothèques TestNG dans un dossier lib séparé dans mon projet

    une. com.beust.jcommander_1.72.0.jar

    b. org.Apache-extras.beanshell.bsh_2.0.0.b6.jar

    c. org.testng_6.14.2.r201802161450.jar

    ré. or.yaml.snakeyaml_1.17.0.jar

  2. J'ai également mis une copie de Selenium-server et chromedriver dans le dossier lib

  3. Depuis mon dossier de projet (avec testng.xml situé à la racine du projet) J'ai couru:

    Java -cp .\lib\*;.\target\classes org.testng.TestNG testng.xml

0
Richie_b

J'ai eu le même problème et voici mes résultats: dans mon projet, j'avais un fichier de test dans

src/test/Java/com/temporary/core

et en même temps, j'avais des ressources pour le test

src/test/resources/com/temporary/Core

Comme je l'ai trouvé, testng a essayé de trouver le fichier de test dans le deuxième répertoire.

Lorsque j'ai renommé le répertoire avec des ressources de Core en tcore, le problème a été résolu.

Très simple mais parfois difficile à repérer. @Test n'est pas sélectionné lorsqu'aucune donnée n'est renvoyée par le fournisseur de données correspondant.

0
user10761294

J'ai également eu ce problème, et aucune des solutions ci-dessus n'a fonctionné. Le redémarrage d'Eclipse, cependant. Je sais que cela semble être une réponse inutile, mais j'aurais moi-même économisé beaucoup de temps si je l'avais fait plus tôt, alors je le posterai quand même.

0
jumps4fun

Dans mon cas, le test a été accidentellement marqué comme "enabled = false" à l'intérieur du @Test (...). Assurez-vous que la valeur pour vous est marquée comme "vraie".

0
sue