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. Bunlardan bazıları:

  • 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 nereye ekleyeceğiniz
  • İş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 ö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.

Ayrıca, birim testini derledikten 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 testlerin başarılı olması için gerekli bakım yapı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ı içeriyorsa (herhangi bir ITestDevice API'sini kullanıyorsa) 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, uygun 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 adb ile gerekirse fastboot öğelerinin Eclipse'in PATH'inde olduğ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. m tradefed-all komutunu çalıştırın.
  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. Run'ı (Çalıştır) tıklayın.

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

  1. Ticaret Federasyonu'nu kurun.
  2. Ana makineye bir Android cihaz bağlayın.
  3. tools/tradefederation/core/javatests/run_tradefed_func_tests.sh çalıştırma
  4. İsteğe bağlı olarak, --serial <serial no> komutunun çıkışında göründüğü şekilde 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önderimleri çalıştırmanız önerilir.