Exécuter vos tests Karate dans IntelliJ IDEA sans payer : solution gratuite et efficace

 

Karate est un outil de test open source réputé pour sa légèreté, son efficacité et sa convivialité. Si vous êtes déjà familier avec Karate, vous savez à quel point il peut être puissant pour automatiser vos tests API et UI.

Cependant, l’exécution de ces tests peut parfois être fastidieuse, surtout lorsque vous devez les exécuter régulièrement dans votre environnement de développement.

Dans cet article, je vais partager avec vous une solution simple et gratuite pour automatiser l’exécution des tests Karate dans IntelliJ IDEA à 0 Euro.

Les options existantes

Lorsqu’il s’agit d’exécuter des tests Karate, vous avez généralement trois options:

Fichier Java avec un runner dédié

Vous pouvez créer un fichier Java pour chaque test Karate, contenant un runner spécifique. Cela peut être pratique pour exécuter des tests individuels, mais cela devient rapidement fastidieux lorsque vous avez un grand nombre de tests.

lien karate-template

karate

Cela peut être pratique pour exécuter des tests individuels, mais cela devient rapidement fastidieux lorsque vous avez un grand nombre de tests.

UsersRunner.java

package examples.users;

import com.intuit.karate.junit5.Karate;

class UsersRunner {
    
    @Karate.Test
    Karate testUsers() {
        return Karate.run("users").relativeTo(getClass());
    }    

}

Exécution simultanée de tous les tests

Une autre option consiste à regrouper tous les tests dans un seul fichier Java et à les exécuter simultanément. Cela peut être pratique pour exécuter tous les tests en une seule fois, mais cela peut devenir encombrant lorsque vous essayez de travailler sur des tests individuels ou de déboguer des problèmes spécifiques.

ExamplesTest.java


package examples;

import com.intuit.karate.Results;
import com.intuit.karate.Runner;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;

class ExamplesTest {

    @Test
    void testParallel() {
        Results results = Runner.path("classpath:examples")
                //.outputCucumberJson(true)
                .parallel(5);
        assertEquals(0, results.getFailCount(), results.getErrorMessages());
    }

}

Utilisation de plugins payants

Enfin, vous pouvez utiliser des plugins payants qui offrent une interface conviviale pour l’exécution des tests Karate. Bien que ces plugins puissent être pratiques, ils ajoutent un coût supplémentaire.
12 USD / Mois pour le Karate PLUS
64 USD / Mois pour Karate PRO

Plus d’information sur la page de karate Lien prix

Avec le plugin vous pouvez exécuter les tests avec un run bouton  de ligne et les exécuter par Scenario ou par Feature

La solution V 0.0

Après avoir essayé différentes approches, j’ai finalement trouvé une solution simple et pour automatiser l’exécution des tests Karate dans IntelliJ IDEA. 🎡

Implémentation

Pour mettre en place cette solution, vous aurez besoin de deux choses : une classe Java générique pour exécuter les tests Karate et une configuration d’exécution personnalisée dans IntelliJ IDEA.

Création du fichier KarateRunner

Cée un fichier le fichier KarateRunner.java dans votre arboraisance au même niveau que fotre fichier « karate-config.js »

Contenu du fichier


import com.intuit.karate.junit5.Karate;

public class KarateRunner {
    @Karate.Test
    Karate runTest() {
        String filePath = System.getProperty("karate.test");
        if (filePath == null || filePath.isEmpty()) {
            throw new IllegalArgumentException("Nom du fichier de test non spécifié. Veuillez spécifier le nom du fichier de test en tant que propriété système avec -Dkarate.test=nom_du_fichier.feature");
        }
        String fileName = filePath.replace('\\', '/');
        return Karate.run(fileName).relativeTo(KarateRunner.class);
    }
}

Configuration d'exécution personnalisée dans IntelliJ IDEA

  • Ouvrez IntelliJ IDEA et accédez à la barre de menus.
  • Sélectionnez « Run » (Exécuter) -> « Edit Configurations » (Modifier les configurations).
  • Créez une nouvelle configuration d’exécution ou modifiez une configuration existante.
  • Choisissez JUnit comme template
Paramétrage de notre configuration

Configuré votre configuration comme suis:

  1. Donner un nom a votre configuration exp: « KarateRunnerExc« 
  2. Utilisez la fonctionnalité « Dynamic Macros » pour insérer le nom du fichier actuellement sélectionné dans l’IDE. Arguments de programme
    -ea -Dkarate.test=$FilePathRelativeToSourcepath$
  3. Recherchez notre fichier générique KarateRunner.
  • Enregistrer la configuration :

    • Après avoir configuré les valeurs dans la configuration, cliquez sur « OK » pour enregistrer la configuration.

Utilisation

Pour utiliser notre nouvelle configuration, choisissez la configuration « KarateRunnerExc »  puis rendrez vous dans votre fichier de test (toto.feature) et exécutez cette configuration

Résultat

Conclusion

Avec cette solution en place, vous pouvez désormais automatiser l’exécution de vos tests Karate dans IntelliJ IDEA sans avoir à dépenser de l’argent pour des plugins payants. Cela vous permet de gagner

Fancy Tuxedo GIF - Fancy Tuxedo Winnie The Pooh - Discover & Share GIFs

du temps et de l’argent tout en profitant de la simplicité et de la convivialité de Karate dans votre processus de développement logiciel.

Dans un future si la flemme me le permet je pencherais sur un réel plugin

Pour en savoir plus sur Karate et commencer à automatiser vos tests, consultez le site officiel de Karate.

maudmcok Écrit par :

3 Comments

  1. escape rooms hub
    28 juin 2024
    Reply

    Hey! Do you know if they make any plugins to assist with Search Engine Optimization? I’m trying to get my site to rank
    for some targeted keywords but I’m not seeing very good results.
    If you know of any please share. Thank you!

  2. escape rooms
    29 juin 2024
    Reply

    You really make it appear so easy with your presentation but I in finding this matter to be actually something that I believe I would never
    understand. It seems too complex and very wide for me.

    I’m having a look forward in your next put
    up, I will try to get the hold of it!

  3. Kendrick.U
    9 juillet 2024
    Reply

    Very interesting info!Perfect just what I was looking for!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *