2016-08-28 2 views
0

Selon la documentation du plugin Surefire, nous pouvons spécifier un fournisseur comme étant JUnit 4, JUnit-47 et autres.Différence entre le fournisseur Surefire et le coureur spécifié avec l'annotation @RunWith au niveau de la classe

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.17</version> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.maven.surefire</groupId> 
      <artifactId>surefire-junit47</artifactId> 
      <version>2.17</version> 
     </dependency> 
    </dependencies> 
</plugin> 

Supposons que j'ai une classe comme mentionné ci-dessous:

@RunWith(PowerMockRunner.class) 
public class MyListener{ 

    @Test 
    public void testProp() { 

    } 
} 

Quand nous courons Maven Surefire, sera-t utiliser junit47runner ou PowerMockRunner pour exécuter le cas de test?

Répondre

0

Dans votre cas @RunWith est une annotation JUnit (qui est conforme à ce qui est défini dans votre config xml, donc vous pouvez déposer cette config xml dépendances partie et ne vous inquiétez pas à ce sujet).

JUnit runner lancera à son tour votre PowerMockRunner. Donc, votre powermock sera activé, mais vous pouvez toujours utiliser des choses JUnit comme @Rule.

Aussi depuis juin 4.7, il est recommandé de remplacer @RunWith(PowerMockRunner.class) par JUnit powermock rule.

-

surefire doc Citant. Pour la partie générale de la question.

Dans certains cas, il peut être souhaitable de remplacer manuellement une telle sélection. Cela peut être fait en ajoutant le fournisseur requis en tant que dépendance au plugin surefire.

Cela signifie que si elle est correctement définie, la configuration de surefire prend le relais.