En regardant documentation http://maven.Apache.org/surefire/maven-surefire-plugin/examples/testng.html , on peut voir la balise <scope>
sous <dependency>
Qu'est-ce que c'est et comment pouvons-nous l'utiliser pour exécuter un test?
L'élément <scope>
peut prendre 6 valeurs: compiler, fourni, exécution, tester, système et importer.
Cette portée est utilisée pour limiter la transitivité d'une dépendance et également pour affecter le chemin d'accès aux classes utilisé pour diverses tâches de génération.
compiler
C'est la portée par défaut, utilisée si aucune n'est spécifiée. Les dépendances de compilation sont disponibles dans tous les chemins de classes d'un projet. De plus, ces dépendances sont propagées aux projets dépendants.
à condition de
Cela ressemble beaucoup à la compilation, mais indique que vous vous attendez à ce que le JDK ou un conteneur fournisse la dépendance au moment de l'exécution. Par exemple, lors de la création d'une application Web pour Java Enterprise Edition, vous devez définir la dépendance de l'API Servlet et des API Java EE associées sur la portée fournie, car le conteneur Web fournit ces classes. Cette portée est uniquement disponible sur le chemin de classe de compilation et de test et n'est pas transitive.
runtime
Cette étendue indique que la dépendance n'est pas requise pour la compilation, mais pour l'exécution. C'est dans les classpaths d'exécution et de test, mais pas le classpath de compilation.
test
Cette étendue indique que la dépendance n'est pas requise pour une utilisation normale de l'application et n'est disponible que pour les phases de compilation et d'exécution du test.
système
Cette étendue est similaire à fournie sauf que vous devez fournir le fichier JAR qui le contient explicitement. L'artefact est toujours disponible et n'est pas recherché dans un référentiel.
import (disponible uniquement dans Maven 2.0.9 ou version ultérieure)
Cette étendue n'est utilisée que sur une dépendance de type pom dans la section. Cela indique que le POM spécifié doit être remplacé par les dépendances de la section de ce POM. Dans la mesure où elles sont remplacées, les dépendances avec une étendue d'importation ne participent pas réellement à la limitation de la transitivité d'une dépendance.
Pour répondre à la deuxième partie de votre question:
Comment pouvons-nous l'utiliser pour exécuter le test?
Notez que la portée test
permet d'utiliser des dépendances uniquement pour la phase de test.
Lisez le documentation pour plus de détails.
Six portées de dépendance en une seule ligne:
La balise Scope est toujours utilisée pour limiter les dépendances transitives et la disponibilité du fichier jar au niveau du chemin de la classe. Si nous ne fournissons pas de portée, la portée par défaut fonctionnera donc/ Compiler .
Si nous ne fournissons aucune portée, la portée par défaut est compilée. Si vous souhaitez confirmer, il vous suffit de vous rendre dans l'onglet pom effectif dans l'éditeur Eclipse, il vous montrera la compilation.