Bu bölümde, projede değişiklik yaptıktan sonra Trade Federation 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 nereye ekleyebilirsiniz?
- İşlevsel testleri çalıştırma
- TF göndermeden önce doğrulamasının bir kısmını yerel olarak çalıştırma
Birim testi ekleme
Android Açık Kaynak Projesi'nde (AOSP) birim testleri sınıfını şuraya 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 yapmadan otomatik olarak göndermeden önce çalıştırılırlar.
Birim testleri çalıştırma
Trade Federation için tüm AOSP birim testleri ve işlevsel testler tools/tradefederation/core/tests
projesinde bulunur.
Eclipse'te tek bir birim testini çalıştırmak için testi sağ tıklayın ve Olarak Çalıştır > JUnit'i seçin. Tüm birim testlerini çalıştırmak için com.android.tradefed.UnitTests paketini çalıştırın.
Birim testini, derlemeden 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 çalıştırılabilir ancak işlevsel testler, Trade Federation'ın kendisi kullanılarak çalıştırılmalıdır. Bu testler için Android cihaz gerekir. Tüm işlev testleri *FuncTest
adlandırma kurallarına uymalıdır.
Birim testi sonuçlarını kontrol etme
run_tradefed_tests.sh
çalıştırıldığında birim testleri, bazı hata koşulları da dahil olmak üzere test donanımının tüm bölümlerini çalıştırır. Yığın izlemeleri dahil olmak üzere ayrıntılı çıkışı konsola yazdırır.
Sonuçların nihai özetinde, bir hata olup olmadığı belirtilir.
Konsolda örnek nihai özet:
12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]
Tüm testlerin başarılı olması sağlanır. Bu nedenle, yerel değişikliğinizle ilgili bir hata oluşursa lütfen testlerin düzeltildiğinden emin olun.
İşlevsel test ekleme
İşlevsel testiniz bir cihaz içeriyorsa (
ITestDevice
API'si kullanıyorsa) paket tanımıcom.android.tradefed.DeviceFuncTests
içindedir. Aksi takdirde paket tanımıcom.android.tradefed.FuncTests
konumundadır.Test yöntemleriniz mevcut paket alt sınıflarından birine eklenebiliyorsa bu sınıfa eklemeyi tercih edin. Aksi takdirde, geçerli pakete yeni bir sınıf ekleyebilirsiniz.
Her iki durumda da, pakete eklendiğinde testiniz diğer işlevsel testlerle birlikte CI ardışık düzeninde otomatik olarak çalıştırılır.
İşlevsel testler çalıştırma
Eclipse'ten işlevsel test çalıştırmak için:
- Bir cihazın ana makineye bağlı olduğundan ve
adb
ile gerekirsefastboot
'ın 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. Çalıştır > Yapılandırmaları çalıştır'ı kullanarak yapılandırmayı çalıştırın.
- Projeyi
tradefed-tests
, ana sınıfı isecom.android.tradefed.command.CommandRunner
olarak ayarlayın. m tradefed-all
'ü çalıştırın.- Bağımsız değişkenler sekmesinde aşağıdaki komut satırı bağımsız değişkenlerini sağlayın:
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 oluşturun.
- Barındırıcıya bir Android cihaz bağlayın.
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
çalıştır- İsteğe bağlı olarak,
adb devices
çıktısında göründüğü şekilde--serial <serial no>
ekleyerek cihazı seçebilirsiniz.
Yerel değişikliklere karşı TF göndermeden önce testleri çalıştırma
TF ön gönderme işlemine benzer bir ş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şturulan TF'nize karşı tüm TF göndermeden önce testlerini tetikler.
TF göndermeden önce testleri, yukarıdaki birim testlerinin bir üst kümesidir ancak bunların çalıştırılması daha yavaştır. Bu nedenle, daha hızlı doğrulama için birim testlerini geliştirme sırasında çalıştırmanız ve CL'yi yüklemeden önce ön gönderimleri çalıştırmanız önerilir.