2017-02-22 2 views
-1

J'exécute quelques tests de service en utilisant restaure et concombre et ils fonctionnent bien localement juste en utilisant le test Maven.Pourquoi le test de Maven ne fonctionne-t-il pas après mvn clean, sauf si je lance la mise à jour mvn?

Le problème est que si je lance Maven clean, alors je dois lancer la mise à jour de Maven ou ça ne marchera pas (Dit qu'il ne trouve pas mes fichiers de fonction Cucumber). Pour référence, il dit:

No features found at [classpath:classpath/classpath] 

Ce ne serait pas un énorme problème, sauf que je dois avoir cette course à travers Bamboo où je ne peux pas appeler la mise à jour Maven. Donc, soit j'ai besoin de comprendre ce qui ne va pas avec mon POM pour commencer à causer ce problème, ou comment je peux exécuter la mise à jour Maven à travers les variables objectifs/environnement. Le POM est assez simple, avec seulement les dépendances/rapports nécessaires. La partie de construction du POM est la suivante:

<build> 
    <finalName>Test</finalName> 
    <directory>target</directory> 
    <outputDirectory>target/classes</outputDirectory> 
    <testOutputDirectory>target/test-classes</testOutputDirectory> 
    <sourceDirectory>src/main/java</sourceDirectory> 
    <testSourceDirectory>src/test/java</testSourceDirectory> 
    <resources> 
     <resource> 
      <directory>src/test/resources</directory> 
     </resource> 
    </resources> 
</build> 

Tout cela est en Java 8 en utilisant Eclipse comme IDE.

Répondre

0

j'éviter de spécifier quoi que ce soit dans la section de construction dans mon pom et utiliser à la place les valeurs par défaut.

En d'autres termes, je conserverais mes fichiers de caractéristiques dans le même paquet que le coureur ou un sous-paquetage.

Le coureur pourrait par exemple vivre dans le paquet se/thinkcode/tage Comme dans le répertoire:

./test/java/se/thinkcode/tage 

Cela signifie que les fichiers de fonction doivent vivre dans le répertoire:

./test/resources/se/thinkcode/tage 

Cela me permettrait pour minimiser la configuration dans le coureur. En général, j'utilise les coureurs qui ressemble à ceci:

package se.thinkcode.tage; 

import cucumber.api.junit.Cucumber; 
import org.junit.runner.RunWith; 

@RunWith(Cucumber.class) 
public class RunCukesTest { 
} 

Voici la configuration la plus petite possible si vous voulez exécuter concombre JUnit à partir Maven.

Il est encore plus petit que l'exemple fourni par l'équipe de concombre: https://github.com/cucumber/cucumber-java-skeleton

+0

Merci pour les conseils! J'ai actuellement tous les fichiers de test/fonctionnalité sous le même paquet. Je pensais que c'était le moyen le plus facile de le faire fonctionner. Je vais devoir donner un coup de feu demain. Si cela fonctionne, je vais heureusement marquer cela comme correct. – canpan14

+0

Juste en notant que cela a fini par travailler pour moi! Merci encore. – canpan14

0

Cela ressemble à la définition des caractéristiques/colle dans les options de concombre fixé ici. Je crois qu'il y a une meilleure option cependant.

J'ai ajouté les options de concombre suivantes:

features ="src/test/java", 
    glue = "packagename",