Google متعهد به پیشبرد برابری نژادی برای جوامع سیاه است. ببینید چگونه.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

اضافه کردن یک نمونه آزمایش بومی جدید

اگر تازه وارد توسعه سیستم عامل Android هستید ، ممکن است این نمونه کامل از اضافه کردن یک آزمایش بومی کاملا جدید را از ابتدا مفید برای نشان دادن جریان کاری معمولی در نظر بگیرید. علاوه بر این ، اگر شما با ماهرانه ترین چارچوب C ++ نیز ناآشنا هستید ، لطفاً برای داشتن مستندات اضافی ، سایت پروژه بهترین را بررسی کنید.

این راهنما برای استفاده به عنوان نمونه از آزمون زیر استفاده می کند:

سلام آزمون بومی جهانی

توصیه می شود ابتدا از طریق کد فهرست کنید تا قبل از ادامه کار ، برداشتی خشن از آن داشته باشید.

تصمیم گیری در مورد محل منبع

به طور معمول تیم شما از قبل الگوی مکان هایی برای بررسی کد و مکان هایی برای اضافه کردن تست ها خواهد داشت. بیشتر تیم ها دارای یک مخزن git منفرد هستند ، یا یکی را با تیم های دیگر به اشتراک می گذارند اما یک زیر فهرست اختصاصی دارند که شامل کد منبع کامپوننت است.

فرض کنید مکان اصلی برای منبع مؤلفه شما در <component source root> ، بیشتر مؤلفه ها دارای پوشه src و زیر آن پوشه ها را tests کنند ، و برخی از پرونده های اضافی مانند Android.mk (یا در پرونده های اضافی .bp شکسته شده اند).

از آنجا که در حال افزودن یک آزمایش با نام تجاری جدید هستید ، احتمالاً باید فهرست tests کنار کامپوننت src خود ایجاد کنید و آن را با محتوا جمع کنید.

در بعضی موارد ، تیم شما به دلیل نیاز به بسته بندی مجموعه های مختلف تست در باینری های فردی ، ممکن است ساختارهای دایرکتوری بیشتری را تحت tests باشد. و در این حالت ، شما نیاز به ایجاد زیر فهرست جدید تحت tests .

برای نشان دادن ، در اینجا یک رئوس مطالب دایرکتوری معمولی برای مؤلفه های دارای یک پوشه tests واحد وجود دارد:

 \
 <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
          \-- ...
 

و در اینجا یک رئوس مطالب دایرکتوری معمولی برای مؤلفه هایی که دارای چندین فهرست منبع آزمایش هستند:

 \
 <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
      |       \-- ...
      \-- ...
 

صرف نظر از ساختار ، شما در جمع کردن فهرست راهنمای tests یا زیر فهرست جدید تازه ایجاد شده با پرونده هایی شبیه به آنچه در فهرست native در تغییر نمونه گریت است ، خواهید بود. بخش های زیر در توضیحات بیشتر در مورد هر پرونده توضیح می دهد.

کد منبع

برای مثال به آزمون بومی سلام جهانی مراجعه کنید.

کد منبع مشروح در زیر ذکر شده است:

 #include <gtest/gtest.h>
 

پرونده هدر شامل gtest است. توجه داشته باشید که وابستگی پرونده به طور خودکار با استفاده از BUILD_NATIVE_TEST در پرونده ایجاد می شود

 #include <stdio.h>

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

gtests با استفاده از ماکرو TEST نوشته شده است: اولین پارامتر نام مورد آزمون و دوم نام آزمون است. همراه با نام باینری آزمایشی ، وقتی در داشبورد نتیجه مشاهده می شوند ، سلسله مراتب زیر را تشکیل می دهند:

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

برای اطلاعات بیشتر در مورد تست نوشتن با gtest ، به اسناد آن مراجعه کنید:

  • https://github.com/google/googletest/blob/master/googletest/docs/Primer.md

پرونده پیکربندی ساده

هر ماژول آزمایشی جدید باید یک فایل پیکربندی برای هدایت سیستم ساخت با ابرداده ماژول ، وابستگی به زمان کامپایل و دستورالعمل های بسته بندی داشته باشد. در بیشتر موارد ، گزینه پرونده مبتنی بر سونگ ، Blueprint کافی است. برای جزئیات بیشتر به پیکربندی تست ساده مراجعه کنید.

پرونده پیکربندی پیچیده

برای استفاده از فدراسیون تجارت ، به جای آن ، یک فایل پیکربندی تست برای مهار تست اندروید ، فدراسیون تجارت بنویسید.

پیکربندی آزمون می تواند گزینه های ویژه تنظیم دستگاه و آرگومان های پیش فرض را برای تهیه کلاس تست مشخص کند.

بصورت محلی بسازید و آزمایش کنید

برای رایج ترین موارد استفاده ، از Atest استفاده کنید .

برای موارد پیچیده تری که نیاز به سفارشی سازی سنگین تری دارند ، دستورالعمل های ابزار دقیق را دنبال کنید.