Comment créer un fichier JAR exécutable en utilisant IntelliJ à partir d'un fichier java Selenium/TestNG?

J'ai cherché sur Google pendant des jours pour essayer de comprendre comment faire cela, si quelqu'un a fait cela avant que j'apprécierais grandement l'aide.

j'ai un projet de test d'automatisation que J'ai créé à IntelliJ qui automatise un utilisateur interagissant avec une Application Web.

je voudrais mettre ce test automatisé (créé en Java, en utilisant Selenium et TestNG) dans un fichier JAR exécutable que d'autres peuvent exécuter en double-cliquant sur le fichier jar.

chaque fois que j'essaie pour créer un fichier jar en naviguant vers la Structure du projet - > artefact - > + - > Jar - > à partir de modules avec des dépendances, il finit par créer un jar qui le revendique,

"Could not find or load the main class <package.MainClass> "

lorsque je tente de l'exécuter avec la commande suivante:

java -jar MyProject.jar <Manifest Path>

une idée de la raison pour laquelle j'obtiens continuellement cette erreur, ou avoir un moyen de le faire avec succès?

aussi, Voici mon pom.xml:

<groupId>TestAutomation</groupId>
<artifactId>TestAutomation</artifactId>
<version>1.0-SNAPSHOT</version>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.test.automation.Executable</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>2.39.0</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.40.0</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.1.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

9
demandé sur Ripon Al Wasim 2014-03-26 03:21:13

1 réponses

j'ai finalement compris pour tous ceux qui se trouvent dans ce problème, c'est comme ça que j'ai obtenu que le fichier jar soit créé et exécuté avec succès...

j'ai dû changer mon pompon.fichier xml suivant:

<groupId>TestAutomation</groupId>
<artifactId>TestAutomation</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<url>http://maven.apache.org</url>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.test.automation.Executable</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.40.0</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.1.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

ensuite, j'ai dû ajuster ma méthode principale pour ne pas utiliser d'appels liés à TestNG. Par exemple, je ne pouvais pas utiliser quelque chose comme ça pour ma méthode principale:

    TestListenerAdapter tla = new TestListenerAdapter();
    TestNG testng = new TestNG();
    testng.setTestClasses(new Class[] {WordProfFonts2Set0.class});
    testng.addListener(tla);
    testng.run();

enfin, voici les étapes pour obtenir le bocal approprié fichier créé:

  1. Sélectionner Fichier > Structure Du Projet... du menu du haut
  2. Sélectionner "Objet" dans le menu de gauche et cliquez sur le '+'
  3. sélectionnez Jar > à partir des modules avec dépendances...
  4. Sélectionnez votre classe principale en utilisant le bouton PARCOURIR
  5. cliquez sur le bouton radio à côté de, "extraire à la jarre cible" et cliquez sur "OK"
  6. cliquez sur le ' + 'puis sélectionnez" Module Test Output"
  7. dans les éléments disponibles pane à droite, étendez le nom du projet et sélectionnez tous les fichiers Maven, puis déplacez-les dans le répertoire jar créé dans le volet de gauche
  8. cliquez sur "OK"
  9. Sélectionnez Construire > Construire Des Artefacts... du menu du haut
  10. survolez le bocal créé et cliquez sur "Construire" sous Actions

Notes:

  1. assurez-vous d'ajouter le pilote IE ou Chrome à votre dossier de ressources de projets, et appelez-le via le dossier de code, plutôt que le disque dur de l'ordinateur. Par exemple, faites ceci:

    File file = new File ("src\test\resources\binaires\IEDriverServer.exe");

Pas ceci:

File file = new File
("C:\Users\<Username>\<Proj Name>\src\test\java\src\
  test\resources\binaries\IEDriverServer.exe");

puis créez le même répertoire avec le pilote dans le même dossier que votre jar est sauvegardé sur votre ordinateur:

src
TestAutomation.jar

2 . Assurez-vous, si vous utilisez IE, que le Mode protégé est défini pour toutes les zones ou aucune d'entre elles (dans IE, allez à Options Internet... > Sécurité (tab) > Activer la case à cocher Mode protégé)

7
répondu urbanaut 2014-03-26 21:40:02