Birim ve işlevsel testleri dahil edin

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:

  1. Bir cihazın ana makineye bağlı olduğundan ve adb ile gerekirse fastboot'ı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.
  2. Java uygulaması oluşturun. Çalıştır > Yapılandırmaları çalıştır'ı kullanarak 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'ü çalıştırın.
  5. 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>
  6. Çalıştır'ı tıklayın.

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

  1. Ticaret Federasyonu oluşturun.
  2. Barındırıcıya bir Android cihaz bağlayın.
  3. tools/tradefederation/core/javatests/run_tradefed_func_tests.sh çalıştır
  4. İ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.