誰かがAndroid Studioで(端末ではなくGUIから))テストを実行できるようになりましたか。GUIからテストを実行できませんでした。
GUIを介してテストを実行しようとするたびに、次のメッセージが表示されます。
次のコマンドを使用して、ターミナルからテストを実行できます。
./gradlew connectedAndroidTest
Android Studio 0.5.2 with Gradle 1.11 with Plugin 0.9. on Mac OSXを実行しています
私のプロジェクトの構造は次のとおりです。
MyProject/
src/
androidTest/
Java/
com.myproject.app.test/
… (tests source code) …
main/
Java/
com.myproject.app/
… (source code) …
res/
… (resources code) …
build.gradle
私のbuild.gradleファイルは次のようになります。
…
Android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
defaultConfig {
versionCode 12
versionName "2.0"
minSdkVersion 9
targetSdkVersion 19
testPackageName "com.test.foo"
testInstrumentationRunner "Android.test.InstrumentationTestRunner"
}
}
…
誰かが何か提案があれば、私はここでそれらを喜んで以上にするでしょう。
わかりました、問題の原因を見つけました。
プロジェクトの.ideaフォルダーにあるmisc.xmlファイルで、次のようなProjectRootManagerコンポーネントの無効な属性値がありました。
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.6 (3)" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
したがって、project-jdk-name属性値を"1.6"に変更すると、問題が解決しました。以下は、値を更新した後の様子です。
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
これが誰かを助けることを願っています。
今日、いくつかのEspressoテストで同じ問題が発生しましたが、すべてが正常に見えたので、私は夢中になりました。最後に、問題は、メソッドに@BeforeClass
(クラス内のいずれかのテストメソッドの前に実行する必要があるメソッドをマークするために使用される注釈)が例外をスローしていました。予想よりも時間がかかった理由は、そのメソッドで問題が発生した場合、例外のスタックトレースがログウィンドウに表示されないためですのRunタブのLogウィンドウのAndroidモニタータブ
問題を再現したい場合は、これをテストクラスに追加してください:
@BeforeClass
public static void setupClass() {
throw new RuntimeException("Sorry dude, you won't find any test!");
}
これは、実行構成のタイプが正しくないときに発生する可能性があります。
私の場合、KotlinでEspressoテストを実行すると、これはうまくいきません。何らかの方法でAndroid JUnitテストが間違ったタイプです。手動でAndroid Instrumentedを作成しますテストは問題を解決します。
私にとってそれは愚かなことでした。 Release
ビルドバリアントからDebug
に切り替えるだけで問題は解決しました。
エミュレータからデータをワイプするだけで問題は解決しました。ログでは、十分なスペースがないことがわかりました。空のスイートエラーが発生するテストを実行する前に実行したテストは正常に機能し、両方のテストがプロジェクト内の同じ場所にあったため、構成上の問題はありませんでした。
@Testアノテーションにはimport org.junit.jupiter.api.Test;
からアノテーションを付ける必要があります
私の場合、SING KOTLINは何もスローしませんでした。端末で実行しようとしたコマンドを実行した場合:
$ adb Shell am instrument -w -r -e debug false -e class xx.xxxxxxx.xx.xx.xxx.xxx.HomeActivityTests xx.xxxxxxx.xx.xx.debug.test/Android.support.test.runner.AndroidJUnitRunner
エラーがスローされます。
原因:org.mockito.exceptions.base.MockitoException:
クラスxx.xxxxxxx.xx.xx.xxx.xxx.xxx.ProductUseCaseをモック/スパイできません
Mockitoは次の理由でモック/スパイできません:-xx.xxxxxxx.xx.xx.xxx.xxx.HomeActivityTests。(HomeActivityTests。 kt:25)...さらに20
失敗!!!
そして、それは私がクラスをopen
しなかったことを示しました、それはKotlinでテストするときmustだからです