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:
- Bir cihazın ana makineye bağlı olduğundan ve gerekirse
adb
ilefastboot
öğ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. - Java uygulaması oluşturun. Run > Run configurations (Çalıştır > Çalıştırma yapılandırmaları) üzerinden yapılandırmayı çalıştırın.
- Projeyi
tradefed-tests
, ana sınıfı isecom.android.tradefed.command.CommandRunner
olarak ayarlayın. - Koşu
m tradefed-all
. - 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>
- Çalıştır'ı tıklayın.
İşlevsel testleri Eclipse dışında çalıştırmak için.
- Ticaret Federasyonu'nu kurun.
- Bir Android cihazı ana bilgisayara bağlayın.
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
çalıştır- İsteğe bağlı olarak,
--serial <serial no>
komutunun çıkışında göründüğü şekliyleadb 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.