Comment faire pour exécuter TestNG tests de main() dans un fichier exécutable jar?
J'ai un exécutable JAR qui contient toutes les dépendances et les classes de test. J'ai confirmé que la méthode main() est appelée lorsque j'exécute le pot. Je suis en train d'ajouter du code dans main (), de sorte que je peux utiliser un spécifique TestNG de la classe de test. À partir de la documentation sur TestNG.org cela semble être la façon de le faire:
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] { com.some.path.tests.MyTests.class });
testng.addListener(tla);
testng.run();
Mon dossier structure est typique:
/src/main/java/Main.java
/src/test/java/com/some/path/tests/MyTests.java
Cependant lorsque j'essaie de compiler, j'obtiens cette erreur:
java: /src/main/java/Main.java:46: package com.some.path.tests does not exist
Est-il de toute façon je peux modifier mon projet afin que testng.setTestClasses() dans main() peut accéder à la classe de test?
OriginalL'auteur TERACytE | 2013-05-09
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé le suivant dans ma méthode main() et cela a fonctionné.
Je n'arrive pas à configurer mes paramètres ...
OriginalL'auteur TERACytE
Vous pouvez charger votre habitude xml en principal à l'aide de
org.testng.xml.Parser
etorg.testng.xml.XmlSuite
OriginalL'auteur KCD
Si c'est votre structure de dossier, et pas juste un type, c'est mal. Le nom du package est représentée comme une structure de dossier, pas un dossier avec le nom du package.
Il devrait donc être
src/test/java/com/some/path/tests/MyTests.java
Aussi, assurez-vous que votre test de classes sont en fait dans le fichier Jar. Si vous utilisez maven pour construire le Pot, votre test de classes ne sont pas inclus par défaut.
Ne
MyTests
d'avoir le bon package de déclaration?Il n': "package com.certains.chemin d'accès.les tests"
OriginalL'auteur NilsH