Android birim testleri için awesome plugin from Jake Wharton kullanıyorum. Bu ünite testlerini çalıştırmanın zorluğunu alma hedefim, hız içindir (TDD hızlı geri besleme ve hepsi). aşağıdaki gibiDiğer proje bağımlılıklarını yüklemeden platformdan tek bir Android (birim) testi çalıştırın
Ben doğru yapılandırmak ve çalışan bazı örnek testleri yönetmek ettik:
./gradlew test
Ben testler zaman keşke şu çıktıyı fark olsa:
Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0
The Test.testReportDir property has been deprecated and is scheduled to be removed in Gradle 2.0. Please use the Test.getReports().getHtml().getDestination() property instead.
The TaskContainer.add() method has been deprecated and is scheduled to be removed in Gradle 2.0. Please use the create() method instead.
:mySampleApp:preBuild UP-TO-DATE
:mySampleApp:preDebugBuild UP-TO-DATE
:mySampleApp:preReleaseBuild UP-TO-DATE
:libraries:facebook:compileLint
:libraries:facebook:copyReleaseLint UP-TO-DATE
:libraries:facebook:mergeReleaseProguardFiles UP-TO-DATE
:libraries:facebook:packageReleaseAidl UP-TO-DATE
:libraries:facebook:preBuild UP-TO-DATE
:libraries:facebook:preReleaseBuild UP-TO-DATE
:libraries:facebook:prepareReleaseDependencies
:libraries:facebook:compileReleaseAidl UP-TO-DATE
:libraries:facebook:compileReleaseRenderscript UP-TO-DATE
:libraries:facebook:generateReleaseBuildConfig UP-TO-DATE
:libraries:facebook:mergeReleaseAssets UP-TO-DATE
:libraries:facebook:mergeReleaseResources UP-TO-DATE
:libraries:facebook:processReleaseManifest UP-TO-DATE
:libraries:facebook:processReleaseResources UP-TO-DATE
:libraries:facebook:generateReleaseSources UP-TO-DATE
:libraries:facebook:compileRelease UP-TO-DATE
:libraries:facebook:processReleaseJavaRes UP-TO-DATE
:libraries:facebook:packageReleaseJar UP-TO-DATE
:libraries:facebook:packageReleaseLocalJar UP-TO-DATE
:libraries:facebook:packageReleaseRenderscript UP-TO-DATE
:libraries:facebook:packageReleaseResources UP-TO-DATE
:libraries:facebook:bundleRelease UP-TO-DATE
:mySampleApp:prepareComAndroidSupportAppcompatV71800Library UP-TO-DATE
:mySampleApp:preparemySampleAppandroidLibrariesFacebookUnspecifiedLibrary UP-TO-DATE
:mySampleApp:prepareDebugDependencies
:mySampleApp:compileDebugAidl UP-TO-DATE
:mySampleApp:compileDebugRenderscript UP-TO-DATE
:mySampleApp:generateDebugBuildConfig UP-TO-DATE
:mySampleApp:mergeDebugAssets UP-TO-DATE
:mySampleApp:mergeDebugResources UP-TO-DATE
:mySampleApp:processDebugManifest UP-TO-DATE
:mySampleApp:processDebugResources UP-TO-DATE
:mySampleApp:generateDebugSources UP-TO-DATE
Gradle görünüyor Projem için TÜM bağımlıları yükleniyor.
package com.mycompany.mysampleapp;
import org.junit.Test;
import static org.fest.assertions.api.Assertions.assertThat;
public class AdditionOperationsTest {
@Test public void testModulus() {
assertThat(1).isEqualTo(1);
}
}
Bu test aslında çalıştırmak için ikinci bir kısmını almalıdır şu şekildedir:
Benim Örnek Test olduğunu. Anlayışım, proje bağımlılıklarının ön yüklemesinin tümünün onu aşağıya çekmesidir.
iyi günlerde, emin i CLASSPATH'e ihtiyaç ve sadece böyle bir şey ne çalıştırmak zorunda kılacak: Bu gradle sahip bir Android projesi düşünüldüğünde
javac src/test/java/main/java/com/micromobs/pkk/AdditionOperationsTest.java
java org.junit.runner.JUnitCore com.micromobs.pkk.AdditionOperationsTest
, ben olurdu tahmin ediyorum gradle build dosyasında, örnek projem için yalnızca test dosyalarımı içeren ve sonra bir gradle komutu çalıştırabilen belirli görevleri oluşturmak gibi biraz farklı bir şey yapmak için ./gradlew taskName?
Soru: o
İşte harici proje bağımlılıkları yüklemez böylece yalnız projemin (com.mycompany.mysampleapp) kapsamında tek bir test "AdditionOperationsTest" çalıştırmak mümkün mü nasıl benim yapılandırma
# settings.gradle
include ':libraries:gradle-android-test-plugin'
include ':libraries:facebook', ':mysampleapp'
# build.gradle
...
apply plugin: 'android-test'
dependencies {
testCompile 'junit:junit:4.10'
testCompile 'org.robolectric:robolectric:2.1.+'
testCompile 'com.squareup:fest-android:1.0.+'
}
# location of my test files:
androidproj/mysampleapp/src/test/java/main/com/mycompany/mysampleapp/AdditionOperationsTest.java
Aynı sorunu çözmeye çalışıyorum. Yapmam gereken şey, çok modüllü bir projeye sahip olmak, böylece testlerin ayrı bir modülde bulunması, ancak bunun gerekli olmayacağını umuyorum. – Turnsole
Evet Gerçekten farklı modüllerdeki testlerimi kırmak istemiyorum. Tüm projemizi bir araya getirmenin iyiliğini kaybedeceğimi hissediyorum. Bunu eklemem gereken bazı aptalca bir parametre ya da bildirmek zorunda olduğum bir görev, dış proje bağımlılıklarını görmezden geleceğim ve işaret ettiğim kesin testi ve yalnızca gereken bağımlılıkları çalıştırmayı umuyorum. –