Yeni GoogleTestleri Ekleme (GTestler)

Android platformu geliştirme konusunda yeniyseniz, sıfırdan yepyeni bir GTest ikili dosyası (bazen "yerel" test olarak da adlandırılır) eklemeye yönelik bu eksiksiz örneği, söz konusu tipik iş akışını göstermek için yararlı bulabilirsiniz. C++ için GTest çerçevesi hakkında ek bilgi için, ek belgeler için GTest proje sitesine bakın.

Bu kılavuz, örnek olarak Hello World GTest'i kullanır. Devam etmeden önce kabaca anlamak için kodu baştan sona okumanızı öneririz.

Bir kaynak konumuna karar verme

Tipik olarak ekibiniz, kodu teslim etmek için yerleşik bir yer modeline ve testler eklenecek yerlere zaten sahip olacaktır. Çoğu takımın tek bir git havuzu vardır veya diğer takımlarla bir tane paylaşır, ancak bileşen kaynak kodunu içeren özel bir alt dizine sahiptir.

Bileşen kaynağınız için kök konumunun <component source root> konumunda olduğunu varsayarsak, çoğu bileşenin altında src ve tests klasörleri ve Android.mk (veya ek .bp dosyalarına bölünmüş) gibi bazı ek dosyalar bulunur.

Yepyeni bir test eklediğinizden, muhtemelen src bileşeninizin yanında tests dizini oluşturmanız ve onu içerikle doldurmanız gerekecektir.

Bazı durumlarda, farklı test paketlerini bireysel ikili dosyalara paketleme ihtiyacı nedeniyle ekibiniz tests altında daha fazla dizin yapısına sahip olabilir. Ve bu durumda, tests altında yeni bir alt dizin oluşturmanız gerekir.

Örnek olarak, burada tek bir tests klasörüne sahip bileşenler için tipik bir dizin taslağı verilmiştir:

\
 <component source root>
  \-- Android.bp (component makefile)
  \-- AndroidTest.xml (test config file)
  \-- src (component source)
  |    \-- foo.cpp
  |    \-- ...
  \-- tests (test source root)
      \-- Android.bp (test makefile)
      \-- src (test source)
          \-- foo_test.cpp
          \-- ...

ve birden fazla test kaynağı dizinine sahip bileşenler için tipik bir dizin taslağı:

\
 <component source root>
  \-- Android.bp (component makefile)
  \-- AndroidTest.xml (test config file)
  \-- src (component source)
  |    \-- foo.cpp
  |    \-- ...
  \-- tests (test source root)
      \-- Android.bp (test makefile)
      \-- testFoo (sub test source root)
      |   \-- Android.bp (sub test makefile)
      |   \-- src (sub test source)
      |       \-- test_foo.cpp
      |       \-- ...
      \-- testBar
      |   \-- Android.bp
      |   \-- src
      |       \-- test_bar.cpp
      |       \-- ...
      \-- ...

Yapıdan bağımsız olarak, tests dizinini veya yeni oluşturulan alt dizini, örnek gerrit değişikliğindeki native dizinde bulunanlara benzer dosyalarla dolduracaksınız. Aşağıdaki bölümlerde her bir dosyanın ayrıntıları açıklanacaktır.

Kaynak kodu

Örnek için Hello World GTest'e bakın.

Bu örneğin kaynak kodu burada açıklanmıştır:

#include <gtest/gtest.h>

Başlık dosyası GTest için içerir. Dahil etme dosyası bağımlılığı, makefile'da BUILD_NATIVE_TEST kullanılarak otomatik olarak çözülür.

#include <stdio.h>

TEST(HelloWorldTest, PrintHelloWorld) {
    printf("Hello, World!");
}

GTest'ler TEST makrosu kullanılarak yazılır: ilk parametre test durumu adıdır ve ikincisi test adıdır. Test ikili adıyla birlikte, sonuç kontrol panelinde aşağıdaki hiyerarşiyi oluştururlar:

<test binary 1>
| \-- <test case 1>
| |   \-- <test 1>
| |   \-- <test 2>
| |   \-- ...
| \-- <test case 2>
| |   \-- <test 1>
| |   \-- ...
| \-- ...
<test binary 2>
|
...

GTest ile test yazma hakkında daha fazla bilgi için GTest belgelerine bakın.

Basit yapılandırma dosyası

Her yeni test modülünün, yapı sistemini modül meta verileri, derleme zamanı bağımlılıkları ve paketleme yönergeleri ile yönlendirmek için bir yapılandırma dosyası olmalıdır. Çoğu durumda, Soong tabanlı Blueprint dosya seçeneği yeterlidir. Ayrıntılar için Basit Test Yapılandırmasına bakın.

Karmaşık yapılandırma dosyası

Bunun yerine Trade Federation'ı kullanmak için Android'in test donanımı Trade Federation için bir test yapılandırma dosyası yazın.

Test konfigürasyonu, test sınıfını sağlamak için özel cihaz kurulum seçeneklerini ve varsayılan argümanları belirtebilir.

Yerel olarak oluşturun ve test edin

En yaygın kullanım durumları için Atest kullanın.

Daha fazla özelleştirme gerektiren daha karmaşık durumlar için enstrümantasyon talimatlarını izleyin.