web-dev-qa-db-fra.com

Android Studio - Lancer de tests Kotlin - Classe introuvable - Suite de tests vide

Lorsque j'essaie d'exécuter des tests expresso écrits en Kotlin sur Android Studio (jusqu'à 3.2 Canary 9), j'obtiens l'erreur: Processus terminé avec le code de sortie 1 Classe introuvable: "com. myproject.directoryofwinning.VerifyAppIsAwesomeTest "Suite de tests vide.

Étrangement, les tests Java dans le même projet n'ont aucun problème.

J'ai essayé de réinitialiser les configurations et suggéré par d'autres, mais cela ne semble pas faire de différence.

15
user1228891

En fin de compte, j'ai trouvé que c'était à "test" d'être ajouté à la fin du nom de classe. Soit en déplaçant le test Word au début du nom de classe, soit en omettant tout ensemble, le problème est résolu.

4
user1228891

Dans mon cas, en utilisant Android Studio 3.1.1, mes configurations d'exécution/débogage étaient incorrectes, probablement en raison d'une conversion automatique de la configuration lors de la mise à jour Android Studio . Ma configuration de test instrumenté a fini par être placée sous les configurations "Android JUnit", au lieu de "Tests instrumentés Android". La création d'une nouvelle configuration de tests instrumentés pour ma classe particulière a fonctionné.

De plus, les configurations par défaut créées lors d'un clic droit sur l'option "Exécuter tous les tests" de mon module ne parviennent pas à trouver mes tests instrumentés et à s'exécuter correctement, ce qui entraîne

0 test classes found in package '<default package>' 
Process finished with exit code 254 
Empty test suite.

comme la configuration par défaut créée est apparue sous Android JUnit. Cependant, un clic droit sur mon package contenant mes tests instrumentés le crée dans la bonne catégorie. Je peux également le modifier manuellement dans 'All in Module 'et toujours exécuter correctement mes tests kotlin.

En passant, j'ai également eu le IDE donnez-moi la sortie trompeuse suivante avant:

$ adb Shell am instrument -w -r   -e package com.base.package.kotlintests -e debug false com.base.package.test/Android.support.test.runner.AndroidJUnitRunner
Client not ready yet..
Started running tests
Tests ran to completion.
Empty test suite.

Pourquoi at-il dit qu'il y avait une suite de tests vide, pourquoi j'ai clairement des tests? L'examen des journaux ou l'exécution de la commande adb sur un terminal a révélé que mon code lançait une exception dans mon @BeforeClass installer! Aucun test n'a donc été exécuté, et tout s'est déroulé de manière triviale.

4
qix

Il m'a fallu quelques essais pour comprendre cela, mais cela a fini par être dû à l'absence des changements de niveau nécessaires pour activer la kotlin.

....
apply plugin: 'kotlin-Android'
Android {
    ....
}
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.21"
    ....
}
2
mattfred

Reconstruire le projet, Fichier> Invalider les caches/redémarrer ..., supprimer le dossier app\build, tuer adb des processus, redémarrer l'émulateur.

1
CoolMind