Google มุ่งมั่นที่จะพัฒนาความเท่าเทียมทางเชื้อชาติสำหรับชุมชนคนผิวดำ มาดูกันว่า
หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

การเพิ่มตัวอย่างการทดสอบดั้งเดิมใหม่

หากคุณยังใหม่กับการพัฒนาแพลตฟอร์ม Android คุณอาจพบตัวอย่างที่สมบูรณ์ของการเพิ่มการทดสอบเนทีฟแบบใหม่ตั้งแต่เริ่มต้นมีประโยชน์เพื่อแสดงให้เห็นถึงขั้นตอนการทำงานทั่วไปที่เกี่ยวข้อง นอกจากนี้หากคุณไม่คุ้นเคยกับกรอบ gtest สำหรับ C ++ โปรดตรวจสอบ ไซต์โครงการ gtest สำหรับเอกสารเพิ่มเติม

คู่มือนี้ใช้การทดสอบติดตามเพื่อทำหน้าที่เป็นตัวอย่าง:

สวัสดีชาวโลกทดสอบ

ขอแนะนำให้เรียกดูรหัสก่อนเพื่อให้เกิดความประทับใจอย่างคร่าวๆก่อนดำเนินการต่อ

ตัดสินใจเลือกที่ตั้งต้นทาง

โดยทั่วไปแล้วทีมงานของคุณจะมีรูปแบบของสถานที่ที่กำหนดไว้แล้วในการตรวจสอบรหัสและที่สำหรับเพิ่มการทดสอบ ทีมส่วนใหญ่เป็นเจ้าของที่เก็บ 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 ไดเรกทอรี tests หรือไดเรกทอรีย่อยที่สร้างขึ้นใหม่พร้อมไฟล์ที่คล้ายกับสิ่งที่อยู่ในไดเรกทอรี native ในการเปลี่ยนแปลง gerrit ตัวอย่าง ส่วนด้านล่างจะอธิบายรายละเอียดเพิ่มเติมของแต่ละไฟล์

รหัสแหล่งที่มา

ดูตัวอย่าง การทดสอบ Hello World Native

ซอร์สโค้ดที่มีคำอธิบายประกอบอยู่ด้านล่าง:

 #include <gtest/gtest.h>
 

ไฟล์ส่วนหัวรวมถึง gtest โปรดทราบว่าการรวมไฟล์ขึ้นอยู่กับการแก้ไขโดยอัตโนมัติโดยใช้ BUILD_NATIVE_TEST ใน makefile

 #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

ไฟล์การกำหนดค่าอย่างง่าย

แต่ละโมดูลทดสอบใหม่จะต้องมีไฟล์กำหนดค่าเพื่อกำหนดระบบการสร้างด้วยข้อมูลเมตาของโมดูลการพึ่งพาเวลารวบรวมและคำแนะนำในการบรรจุ ในกรณีส่วนใหญ่ตัวเลือกไฟล์พิมพ์เขียวที่ใช้ Soong นั้นเพียงพอแล้ว ดู การกำหนดค่าการทดสอบอย่างง่าย สำหรับรายละเอียด

ไฟล์การกำหนดค่าที่ซับซ้อน

หากต้องการใช้สหพันธ์การค้าแทนเขียนไฟล์การกำหนดค่าการทดสอบสำหรับเทียมควบคุม การค้า ของ Android

การกำหนดค่าการทดสอบสามารถระบุตัวเลือกการตั้งค่าอุปกรณ์พิเศษและอาร์กิวเมนต์เริ่มต้นเพื่อระบุคลาสการทดสอบ

สร้างและทดสอบในเครื่อง

สำหรับกรณีการใช้งานทั่วไปให้ใช้ Atest

สำหรับกรณีที่ซับซ้อนมากขึ้นซึ่งต้องการการปรับแต่งที่หนักกว่าให้ทำตาม คำแนะนำการใช้เครื่องมือ