Birim ve işlevsel testleri dahil edin

Bu bölümde, projede değişiklik yaptıktan sonra Ticaret Federasyonu testlerini nasıl çalıştıracağınız ve bu testlere nasıl katkıda bulunacağınız açıklanmaktadır. Bu güvenlik özelliklerinden bazıları şunlardır:

  • Yeni birim testi sınıflarının ekleneceği yer
  • Eclipse'te ve Eclipse IDE dışında birim testleri çalıştırma
  • İşlevsel testleri ekleyeceğiniz yer
  • İşlevsel testleri çalıştırma
  • TF'nin gönderme öncesi doğrulamasının bir kısmını yerel olarak çalıştırma

Birim testleri ekleme

Android Açık Kaynak Projesi'nde (AOSP) birim testleri sınıfını şu konuma ekleyin: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

ÖNEMLİ: Yeni birim testi sınıflarınızı bu konumlara eklediğinizde, ek kurulum yapmanıza gerek kalmadan bu sınıflar ön gönderme sırasında otomatik olarak çalıştırılır.

Birim testlerini çalıştırma

Trade Federation ile ilgili tüm AOSP birim testleri ve işlevsel testler, tools/tradefederation/core/tests projesinde yer alır.

Eclipse'te tek bir birim testini çalıştırmak için testi sağ tıklayıp Run As > JUnit'i (Farklı Çalıştır > JUnit) seçmeniz yeterlidir. Tüm birim testlerini çalıştırmak için com.android.tradefed.UnitTests paketini çalıştırın.

Birim testini, derleme işleminden sonra Tradefed kaynak ağacındaki komut satırından da başlatabilirsiniz. Örneğin: tools/tradefederation/core/javatests/run_tradefed_tests.sh

Birim testleri bağımsız olarak yürütülebilir ancak işlevsel testler Trade Federation kullanılarak yürütülmelidir. Bu testler için Android cihaz gerekir. Tüm işlevsel testler *FuncTest adlandırma kuralına uymalıdır.

Birim testi sonuçlarını kontrol etme

run_tradefed_tests.sh çalıştırıldığında birim testleri, hata koşulları da dahil olmak üzere test düzeneğinin tüm bölümlerini çalıştırır. Yığın izlemeleri de dahil olmak üzere konsola ayrıntılı çıkış yazdırır.

Sonuçların nihai özetinde bir hata oluşup oluşmadığı belirtilir.

Konsoldaki nihai özet örneği:

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

Tüm testler başarılı olacak şekilde sürdürülür. Bu nedenle, yerel değişikliğinizde herhangi bir hata oluşursa lütfen testlerin düzeltildiğinden emin olun.

İşlevsel testler ekleme

  • İşlevsel testiniz bir cihazı (herhangi bir ITestDevice API'yi kullanır) içeriyorsa paket tanımı com.android.tradefed.DeviceFuncTests içinde yer alır. Aksi takdirde, paket tanımı com.android.tradefed.FuncTests konumunda bulunur.

  • Test yöntemleriniz mevcut paket alt sınıflarından birine yerleştirilebiliyorsa bu sınıfa eklemeyi tercih edin. Aksi takdirde, geçerli pakete yeni bir sınıf ekleyebilirsiniz.

  • Her iki durumda da pakete eklediğinizde testiniz, diğer işlevsel testlerle birlikte CI ardışık düzeninde otomatik olarak çalıştırılır.

İşlevsel testler yapma

Eclipse'ten işlevsel test çalıştırmak için:

  1. Bir cihazın ana makineye bağlı olduğundan ve gerekirse adb ile fastboot öğelerinin Eclipse'in PATH'inde bulunduğundan emin olun. Bunu yapmanın en kolay yolu, Eclipse'i uygun PATH ile bir kabuk kurulumundan başlatmaktır.
  2. Java uygulaması oluşturun. Run > Run configurations (Çalıştır > Çalıştırma yapılandırmaları) üzerinden yapılandırmayı çalıştırın.
  3. Projeyi tradefed-tests, ana sınıfı ise com.android.tradefed.command.CommandRunner olarak ayarlayın.
  4. Koşu m tradefed-all.
  5. Arguments (Bağımsız değişkenler) sekmesinde aşağıdaki komut satırı bağımsız değişkenlerini girin: host --class <full path of test class to run>
  6. Çalıştır'ı tıklayın.

İşlevsel testleri Eclipse dışında çalıştırmak için.

  1. Ticaret Federasyonu'nu kurun.
  2. Bir Android cihazı ana bilgisayara bağlayın.
  3. tools/tradefederation/core/javatests/run_tradefed_func_tests.sh çalıştır
  4. İsteğe bağlı olarak, --serial <serial no> komutunun çıkışında göründüğü şekliyle adb devices ekleyerek cihazı seçin.

Yerel değişikliklere karşı TF gönderme öncesi testlerini çalıştırma

TF gönderme öncesiyle benzer şekilde çalıştırmak istiyorsanız şunu kullanın:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Bu işlem, değişikliğinizin herhangi bir testi bozmadığını doğrulamanıza yardımcı olmak için yerel olarak oluşturulmuş TF'nize karşı tüm TF gönderme öncesi testlerini tetikler.

TF gönderme öncesi testleri, yukarıdaki birim testlerinin üst kümesidir ancak bu testlerin çalıştırılması daha yavaştır. Bu nedenle, daha hızlı doğrulama için geliştirme sırasında birim testlerini çalıştırmanız ve CL'yi yüklemeden önce ön gönderme testlerini çalıştırmanız önerilir.