AndroidTest'imi çalıştırmayla ilgili bir sorunum var. İşte Sınıf bulunamadı, AndroidTest ile test yap AndroidTest kullanarak test et 3.0.1, Oda, Kotlin
gradle benim kurgusunda:apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.blabla.shoppinglistapp"
minSdkVersion 17
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
ext.daggerVersion = '2.11'
ext.roomVersion = '1.0.0'
ext.mockitoVersion = '2.11.0'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:recyclerview-v7:26.1.0'
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-android:2.8.47'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
// ViewModel and LiveData
implementation "android.arch.lifecycle:extensions:1.0.0"
annotationProcessor "android.arch.lifecycle:compiler:1.0.0"
// RxJava
implementation 'io.reactivex.rxjava2:rxjava:2.1.5'
implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
implementation 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
// Room
implementation "android.arch.persistence.room:runtime:$roomVersion"
implementation "android.arch.persistence.room:rxjava2:$roomVersion"
kapt "android.arch.persistence.room:compiler:$roomVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.2.10"
androidTestImplementation "android.arch.persistence.room:testing:$roomVersion"
// Gson
implementation 'com.google.code.gson:gson:2.8.2'
}
Ve burada testi (burada neredeyse hiçbir şey) 'dir:
: i bu olsun testi çalıştırmak çalıştığınızda@RunWith(AndroidJUnit4::class)
class ShoppingListDaoTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getTargetContext()
assertEquals("com.blabla.shoppinglistapp", appContext.packageName)
}
private lateinit var database: ShoppingListDatabase
@Before
fun initDb() {
// using an in-memory database because the information stored here disappears after test
database = Room.inMemoryDatabaseBuilder(InstrumentationRegistry.getContext(),
ShoppingListDatabase::class.java)
// allowing main thread queries, just for testing
.allowMainThreadQueries()
.build()
}
@After
fun closeDb() {
database.close()
}
@Test fun testGetActiveShoppingListWhenNoActiveShoppingListInserted() {
database.shoppingListDao().getActiveShoppingLists()
.test()
.assertNoValues()
}
}
Ve UPDATE
Gerçekten çok kötü bir şey farkettim. i Android Studio'da yeni bir proje başladı ve varsayılan çalıştırmayı denediğinizde androidTest bana bilinen hata veriyor :
Bunun workround gradle.properties Bu satırı eklemektir
:Error:Gradle: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
android.enableAapt2=false
Bu özgün projemde daha önce yaptığım adımlar (bu hataya da rastladım). Ne yazık ki, bundan sonra sorumu bana verdi. Yani bu işi yapmak için aute2 ile isse'nin nasıl çözüleceği meselesidir. Ayrıca bkz: AAPT2 error: check logs for details, after workround the androidTest not working
Herhangi bir fikir?
bu Bir test üzerine değil sağ tıklayıp can ve çalıştırın, ancak sağ üst klasörü tıklayabilirsiniz ... Bu nasıl bir (yanıt için teşekkürler) çalıştığını saçma ve çalıştırın .... Ben android için yeni ama test çok bozuk görünüyor .... – jacoballenwood
@jacoballenwood Ya kotlin kırık. Testlerinizi Java'da yazıyorsanız, mükemmel çalışır. Ama şimdi yaz, takım Kotlin'i tam olarak desteklemiyor. Umarım yakında tamir ederler. – Henry