Je rencontre un comportement étrange d'Intellij IDEA 2016.3. Avoir une classe avec la méthode foo
et un test JUnit pour la méthode lorsque je reçois Java.lang.Exception: No tests found matching Method foo
lors de l'exécution du test. Après avoir exécuté mvn test
, l'opération réussit, puis le test d'unité est exécuté juste après l'exécution de la commande mvn; il passe soudainement au vert. On dirait que IDEA ne se compile pas automatiquement. Comment puis-je réparer cela?
P.S. Aucun paramètre n'a été modifié après la mise à niveau vers v. 2016.3
Eh bien, après avoir "joué" un peu avec les configurations d'exécution de chaque test unitaire, j'ai remarqué que chaque configuration d'exécution a un objectif Build
prédéfini dans l'option Before Launch
(voir l'image ci-dessous):
Après avoir modifié Build
en Build Project
, les tests se déroulent correctement.
Le même problème que j'ai eu avec Gradle (4.5+) + nouveau Build Cache feature
Parfois, il est impossible de trouver de nouvelles méthodes de test et lève une exception (comme vous l'avez mentionné dans le sujet)
Solution: nettoyez les répertoires .gradle
, build
et out
et essayez à nouveau;)
Si vous utilisez un cadre de test théorique tel que Junit ou Robolectric , assurez-vous d'exécuter la classe contenant le test souhaité, au lieu du test lui-même. Etant donné que ces frameworks utilisent les méthodes de test comme méthodes d'instance au lieu de méthodes statiques, tout framework de test recherchant un test public static
normal ne trouvera rien.
Si vous exécutez à l'origine un test nommé "foo", puis le renommez "fooBar", vous devez par la suite exécuter "fooBar" avec un nouveau Run Configuration .
Si vous utilisez la même configuration d'exécution originale pour "foo" pour exécuter "fooBar", il recherche toujours un test nommé "foo" qu'il ne trouve pas (donc l'exception) car il a été renommé en "fooBar". La nouvelle configuration d'exécution rechercherait correctement le test "fooBar".
J'ai commis cette erreur sans le savoir, car j'ai renommé un test, mais je viens de cliquer sur le bouton d'exécution vert dans IntelliJ: Cette opération exécute la dernière configuration d'exécution, qui dans ce scénario porte l'ancien nom "foo".
En plus des autres réponses ici: l'erreur peut également se produire lorsque vous oubliez @Test
avant la déclaration de votre méthode de test. IntelliJ (2018.1) vous montrera toujours le "bouton de lecture" vert pour l'exécution du test, mais cette méthode publique dans votre classe de test ne sera pas un test réel.
La suppression du répertoire de sortie d'Intellij a résolu ce problème.
Assurez-vous que vous avez le bon coureur mentionné ci-dessus dans votre classe.
Je recevais ce message étrange lorsque j'utilisais runner CucumberWithSerenity.class
. Quand j'ai changé pour SerenityRunner.class
cela a été corrigé.
@RunWith(SerenityRunner.class)
//@RunWith(CucumberWithSerenity.class)
public class WordPressAppTest {
J'utilise le framework Serenity pour l'automatisation Web et l'utilisation en dessous de la classe du coureur
import net.serenitybdd.cucumber.CucumberWithSerenity;
import net.serenitybdd.junit.runners.SerenityRunner;
import org.junit.runner.RunWith;
Je pense que IDEA (2017.2.6) peut afficher un meilleur message d'erreur que celui-ci
Peut-être que vous venez de donner un mauvais nom pour la méthode de test.
J'ai rencontré ce problème parce que j'ai utilisé '-' au lieu de '_', ce que intelliJ ne peut pas représenter.