Android'de @SmallTest, @MediumTest ve @LargeTest ek açıklamalarının amacı nedir?


99

Android'de yeniyim ve bu ek açıklamaları kullanan örnek kod gördüm. Örneğin:

@SmallTest
public void testStuff() {
    TouchUtils.tapView(this, anEditTextView);
    sendKeys("H E L P SPACE M E PERIOD");
    assertEquals("help me.", anEditTextView.getText().toString());
}

Bu ek açıklama neyi başarıyor?

Yanıtlar:


9

Davidann'ın cevabına ve yorumdaki esas olarak OP'nin sorusuna ek olarak :

Yukarıdaki kod bağlamında, aslında yok DO izni hariç diğer geliştiriciler için bir not şey? Herhangi bir şeyi zorlar mı? Bu açıklamayı kullanan herhangi bir araç var mı? Android geliştirmedeki amacı nedir?

Spesifik notlarla açıklanmış bir grup test çalıştırabilirsiniz.

Gönderen AndroidJUnitRunner belgelerinde :

SmallTest veya MediumTest veya LargeTest ile açıklanmış belirli bir test boyutunu çalıştırmak :

adb shell am enstrüman -w -e boyut [küçük | orta | büyük] com.android.foo/android.support.test.runner.AndroidJUnitRunner

Bu parametreleri gradle aracılığıyla da kurabilirsiniz:


    android {
        ...
        defaultConfig {
            ...
            testInstrumentationRunnerArgument 'size', 'Large'
        }
    }

Gradle ile:

-Pandroid.testInstrumentationRunnerArguments.size=small

Daha fazla ayrıntı için Doug Stevenson blog gönderisine ve bu blog gönderisine bakın.


Tamam, kısacası, sadece @ SmallTest test takımını adb shell am instrument -w -e size small com.android.foo/android.support.test.runner.AndroidJUnitRunner; teşekkürler
kosiara - Bartosz Kosarzycki

Bir gradle komutunda notu nasıl belirleriz? Örneğin, şöyle bir şey:./gradlew connectedDebugAndroidTest -size MediumTest
Mr-IDE

@ Mr-IDE, cevabı aldın mı?
John

139

Bu blog yazısı bunu en iyi şekilde açıklıyor. Temel olarak aşağıdaki gibidir:

test tablosu

  1. Küçük: bu test herhangi bir dosya sistemi veya ağ ile etkileşime girmez.
  2. Orta: Testleri çalıştıran kutudaki dosya sistemlerine erişir.
  3. Büyük: Harici dosya sistemlerine, ağlara vb. Erişir.

Başına Android Geliştiricileri blogda , küçük bir test, <orta testi <2s ve büyük bir testi <120s 100ms almalıdır.

Hangi testlerin çalıştırılacağını nasıl belirleyeceğinizi öğrenmek için bu sayfaya bakın ("@SmallTest" için arama yapın).


13
Görüyorum (ve geçen ay bu makaleyi okuduğumu hatırlıyorum). Ancak yukarıdaki kod bağlamında, diğer geliştiricilere not bırakmak dışında gerçekten bir şey yapıyor mu? Herhangi bir şeyi zorlar mı? Bu açıklamayı kullanan herhangi bir araç var mı? Android geliştirmedeki amacı nedir?
Eric Palakovich Carr

3
@Eric Android TestRunner hangi boyutta testlerin çalıştırılacağını belirlemenize izin verir.
Cheryl Simon

7
Google'dan bu konuda daha yeni bir blog var: plus.google.com/+AndroidDevelopers/posts/TPy1EeSaSg8
k29

1
@SmallTest kullanımdan kaldırıldı
Neon Warge

1
@NeonWarge android.support.test.filters içe aktarımı kullanın. [Küçük] Test;
Alexander Sidikov Pfeif

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.