ProtoResultReporter
public
abstract
class
ProtoResultReporter
extends Object
implements
ILogSaverListener,
ISupportGranularResults,
ITestInvocationListener
java.lang.Object | |
↳ | com.android.tradefed.result.proto.ProtoResultReporter |
ผู้รายงานผลจะสร้าง TestRecord
protobuf ที่มีผลการค้นหาทั้งหมดอยู่ภายใน ควรมีการขยายเพื่อจัดการสิ่งที่ต้องทำกับโปรโตคอลสุดท้ายใน processFinalProto(com.android.tradefed.result.proto.TestRecordProto.TestRecord)
สรุป
ตัวสร้างแบบสาธารณะ | |
---|---|
ProtoResultReporter()
|
เมธอดสาธารณะ | |
---|---|
final
void
|
invocationEnded(long elapsedTime)
รายงานว่าการเรียกใช้สิ้นสุดลงแล้ว ไม่ว่าจะสำเร็จหรือไม่สำเร็จเนื่องจากเงื่อนไขข้อผิดพลาดบางอย่าง |
void
|
invocationFailed(FailureDescription failure)
รายงานการเรียกใช้ที่ไม่สมบูรณ์เนื่องจากสภาพขณะเกิดข้อผิดพลาดบางอย่าง |
void
|
invocationFailed(Throwable cause)
รายงานการเรียกใช้ที่ไม่สมบูรณ์เนื่องจากสภาพขณะเกิดข้อผิดพลาดบางอย่าง |
void
|
invocationSkipped(SkipReason reason)
รายงานการเรียกใช้ว่าข้าม |
final
void
|
invocationStarted(IInvocationContext context)
รายงานการเริ่มต้นการเรียกใช้การทดสอบ |
final
void
|
logAssociation(String dataName, LogFile logFile)
ในบางกรณี บันทึกต้องเชื่อมโยงกับกรณีทดสอบอย่างแน่นหนา แต่โอกาสที่จะทําเช่นนั้นใน |
void
|
processFinalInvocationLogs(TestRecordProto.TestRecord invocationLogs)
ใช้ระเบียนการเรียกใช้เพื่อส่งบันทึกสุดท้ายของการเรียกใช้ทั้งหมดทีละรายการ |
void
|
processFinalProto(TestRecordProto.TestRecord finalRecord)
การจัดการโปรโตสุดท้ายที่มีผลลัพธ์ทั้งหมด |
void
|
processStartInvocation(TestRecordProto.TestRecord invocationStartRecord, IInvocationContext invocationContext)
การจัดการโปรโตคอลระเบียนการทดสอบการเรียกใช้บางส่วนหลังจากเกิด |
void
|
processTestCaseEnded(TestRecordProto.TestRecord testCaseRecord)
การจัดการโปรโตคอลระเบียนกรอบการทดสอบที่เสร็จสมบูรณ์แล้วหลังจากเกิด |
void
|
processTestCaseStarted(TestRecordProto.TestRecord testCaseStartedRecord)
การจัดการโปรโตคอลระเบียนกรอบการทดสอบบางส่วนหลังจาก |
void
|
processTestModuleEnd(TestRecordProto.TestRecord moduleRecord)
การจัดการโปรโตคอลระเบียนโมดูลที่เสร็จสมบูรณ์แล้วหลังจากเกิด |
void
|
processTestModuleStarted(TestRecordProto.TestRecord moduleStartRecord)
การจัดการ Proto ของระเบียนโมดูลบางส่วนหลังจาก |
void
|
processTestRunEnded(TestRecordProto.TestRecord runRecord, boolean moduleInProgress)
การจัดการ Proto ของบันทึกการเรียกใช้ที่เสร็จสิ้นแล้วหลังจาก |
void
|
processTestRunStarted(TestRecordProto.TestRecord runStartedRecord)
การจัดการ Proto ของบันทึกการเรียกใช้การทดสอบบางส่วนหลังจากเกิด |
void
|
setGranularResults(boolean granularResults)
|
void
|
setInlineRecordOfChildren(boolean inline)
|
boolean
|
supportGranularResults()
แสดงค่า True หากเครื่องมือรายงานรองรับผลลัพธ์แบบละเอียด หากไม่ แสดงค่า False |
final
void
|
testAssumptionFailure(TestDescription test, String trace)
เรียกใช้เมื่อตัวบ่งชี้การทดสอบแบบอะตอมระบุว่ามีเงื่อนไขที่เป็นเท็จ |
final
void
|
testAssumptionFailure(TestDescription test, FailureDescription failure)
เรียกใช้เมื่อการทดสอบแบบอะตอมแจ้งว่าถือว่าเงื่อนไขเป็นเท็จ |
final
void
|
testEnded(TestDescription test, long endTime,
ทางเลือกสำหรับ |
void
|
testEnded(TestDescription test,
รายงานการสิ้นสุดการดําเนินการของ Test Case แต่ละรายการ |
final
void
|
testFailed(TestDescription test, FailureDescription failure)
รายงานการทดสอบแต่ละรายการที่ล้มเหลว |
final
void
|
testFailed(TestDescription test, String trace)
รายงานการทดสอบแต่ละรายการที่ล้มเหลว |
final
void
|
testIgnored(TestDescription test)
เรียกใช้เมื่อระบบจะไม่เรียกใช้การทดสอบ ซึ่งโดยทั่วไปแล้วเป็นเพราะเมธอดทดสอบมีคำอธิบายประกอบด้วย annotate ของ org.junit.Ignore |
final
void
|
testModuleEnded()
รายงานการสิ้นสุดการเรียกใช้ข้อบังคับ |
final
void
|
testModuleStarted(IInvocationContext moduleContext)
รายงานช่วงเริ่มต้นของโมดูลที่ทำงานอยู่ |
final
void
|
testRunEnded(long elapsedTimeMillis,
สิ้นสุดการทดสอบรายงาน |
final
void
|
testRunFailed(FailureDescription failure)
การทดสอบรายงานไม่เสร็จสมบูรณ์เนื่องจากความล้มเหลวที่อธิบายโดย |
final
void
|
testRunFailed(String errorMessage)
การเรียกใช้การทดสอบรายงานไม่สำเร็จเนื่องจากข้อผิดพลาดร้ายแรง |
void
|
testRunStarted(String runName, int testCount, int attemptNumber)
รายงานการเริ่มต้นการทดสอบ |
final
void
|
testRunStarted(String runName, int testCount)
รายงานการเริ่มต้นการทดสอบ |
void
|
testRunStarted(String runName, int testCount, int attemptNumber, long startTime)
รายงานการเริ่มต้นการทดสอบ |
final
void
|
testSkipped(TestDescription test, SkipReason reason)
เรียกใช้เมื่อมีการข้ามการทดสอบและไม่ทํางานด้วยเหตุผลที่ปกติแล้วไม่คาดคิด |
final
void
|
testStarted(TestDescription test, long startTime)
ทางเลือกสำหรับ |
final
void
|
testStarted(TestDescription test)
รายงานจุดเริ่มต้นของกรอบการทดสอบแต่ละรายการ |
วิธีการที่มีการป้องกัน | |
---|---|
void
|
afterModuleEnd()
|
void
|
beforeModuleStart()
|
TestRecordProto.ChildReference
|
createModuleChildReference(TestRecordProto.TestRecord record)
สร้างข้อมูลอ้างอิงย่อยสําหรับข้อบังคับ |
ตัวสร้างแบบสาธารณะ
ProtoResultReporter
public ProtoResultReporter ()
วิธีการสาธารณะ
invocationEnded
public final void invocationEnded (long elapsedTime)
รายงานว่าการเรียกใช้สิ้นสุดลงแล้ว ไม่ว่าจะสำเร็จหรือไม่สำเร็จเนื่องจากเงื่อนไขข้อผิดพลาดบางอย่าง
จะถูกเรียกโดยอัตโนมัติโดยเฟรมเวิร์ก TradeFederation
พารามิเตอร์ | |
---|---|
elapsedTime |
long : เวลาผ่านไปของคําเรียกเป็นมิลลิวินาที |
invocationFailed
public void invocationFailed (FailureDescription failure)
รายงานการเรียกใช้ที่ไม่สมบูรณ์เนื่องจากสภาพขณะเกิดข้อผิดพลาดบางอย่าง
เฟรมเวิร์ก TradeFederation จะเรียกใช้โดยอัตโนมัติ
พารามิเตอร์ | |
---|---|
failure |
FailureDescription : FailureDescription ที่อธิบายสาเหตุของการไม่สําเร็จ |
invocationFailed
public void invocationFailed (Throwable cause)
รายงานการเรียกใช้ที่ไม่สมบูรณ์เนื่องจากสภาพขณะเกิดข้อผิดพลาดบางอย่าง
เฟรมเวิร์ก TradeFederation จะเรียกใช้โดยอัตโนมัติ
พารามิเตอร์ | |
---|---|
cause |
Throwable : สาเหตุ Throwable ของความล้มเหลว |
ข้ามการเรียกใช้
public void invocationSkipped (SkipReason reason)
รายงานการเรียกใช้ว่าข้าม
พารามิเตอร์ | |
---|---|
reason |
SkipReason |
invocationStarted
public final void invocationStarted (IInvocationContext context)
รายงานจุดเริ่มต้นของการเรียกใช้การทดสอบ
เฟรมเวิร์ก TradeFederation จะเรียกใช้โดยอัตโนมัติ ผู้รายงานต้องลบล้างวิธีนี้เพื่อรองรับการรายงานอุปกรณ์หลายเครื่อง
พารามิเตอร์ | |
---|---|
context |
IInvocationContext : ข้อมูลเกี่ยวกับคำขอ |
logAssociation
public final void logAssociation (String dataName, LogFile logFile)
ในบางกรณี บันทึกต้องเชื่อมโยงกับกรณีทดสอบอย่างแน่นหนา แต่โอกาสที่จะทําเช่นนั้นใน testLogSaved(String, com.android.tradefed.result.LogDataType, com.android.tradefed.result.InputStreamSource, com.android.tradefed.result.LogFile)
callbacks โดยตรงนั้นไม่สามารถทำได้ ดังนั้น แคล็กแบ็กนี้จึงช่วยให้มีการเชื่อมโยงที่ชัดเจน
พารามิเตอร์ | |
---|---|
dataName |
String : ชื่อของข้อมูล |
logFile |
LogFile : LogFile ที่บันทึกไว้ก่อนหน้านี้และควรเชื่อมโยงกับกรอบการทดสอบ |
กระบวนการFinalInvocationLogs
public void processFinalInvocationLogs (TestRecordProto.TestRecord invocationLogs)
ใช้ระเบียนการเรียกใช้เพื่อส่งบันทึกสุดท้ายทั้งหมดของการเรียกใช้ทีละรายการ
พารามิเตอร์ | |
---|---|
invocationLogs |
TestRecordProto.TestRecord : Proto ที่เสร็จสมบูรณ์ซึ่งแสดงการเรียกใช้ |
processFinalProto
public void processFinalProto (TestRecordProto.TestRecord finalRecord)
การจัดการโปรโตสุดท้ายที่มีผลลัพธ์ทั้งหมด
พารามิเตอร์ | |
---|---|
finalRecord |
TestRecordProto.TestRecord : โปรโตคอลที่เสร็จสมบูรณ์พร้อมผลการเรียกใช้ทั้งหมด |
processStartInvocation
public void processStartInvocation (TestRecordProto.TestRecord invocationStartRecord, IInvocationContext invocationContext)
การจัดการโปรโตคอลระเบียนการทดสอบการเรียกใช้บางส่วนหลังจากเกิด invocationStarted(com.android.tradefed.invoker.IInvocationContext)
พารามิเตอร์ | |
---|---|
invocationStartRecord |
TestRecordProto.TestRecord : โปรโตคอลบางส่วนที่สร้างขึ้นหลังจาก invocationStart |
invocationContext |
IInvocationContext : การเรียกใช้ IInvocationContext |
processTestCaseEnded
public void processTestCaseEnded (TestRecordProto.TestRecord testCaseRecord)
การจัดการโปรโตคอลระเบียนกรอบการทดสอบที่เสร็จสมบูรณ์แล้วหลังจากเกิด ERROR(/#testEnded(com.android.tradefed.result.TestDescription,long,HashMap))
พารามิเตอร์ | |
---|---|
testCaseRecord |
TestRecordProto.TestRecord : โปรโตคอลที่เสร็จสมบูรณ์ซึ่งแสดงถึงกรอบการทดสอบ |
processTestCaseStarted
public void processTestCaseStarted (TestRecordProto.TestRecord testCaseStartedRecord)
การจัดการโปรโตคอลระเบียนกรอบการทดสอบบางส่วนหลังจาก testStarted(com.android.tradefed.result.TestDescription, long)
เกิดขึ้น
พารามิเตอร์ | |
---|---|
testCaseStartedRecord |
TestRecordProto.TestRecord : โปรโตคอลบางส่วนที่แสดงถึงกรอบการทดสอบ |
processTestModuleEnd
public void processTestModuleEnd (TestRecordProto.TestRecord moduleRecord)
การจัดการโปรโตคอลระเบียนโมดูลที่เสร็จสมบูรณ์แล้วหลังจากเกิด testModuleEnded()
พารามิเตอร์ | |
---|---|
moduleRecord |
TestRecordProto.TestRecord : โปรโตคอลที่เสร็จสมบูรณ์ซึ่งแสดงถึงโมดูล |
processTestModuleStarted
public void processTestModuleStarted (TestRecordProto.TestRecord moduleStartRecord)
การจัดการโปรโตคอลระเบียนโมดูลบางส่วนหลังจากเกิด testModuleStarted(com.android.tradefed.invoker.IInvocationContext)
พารามิเตอร์ | |
---|---|
moduleStartRecord |
TestRecordProto.TestRecord : โปรโตคอลบางส่วนที่แสดงถึงโมดูล |
processTestRunEnded
public void processTestRunEnded (TestRecordProto.TestRecord runRecord, boolean moduleInProgress)
การจัดการโปรโตคอลระเบียนการเรียกใช้ที่เสร็จสมบูรณ์แล้วหลังจาก ERROR(/#testRunEnded(long,HashMap))
พารามิเตอร์ | |
---|---|
runRecord |
TestRecordProto.TestRecord : Proto ที่เสร็จสมบูรณ์ซึ่งแสดงการเรียกใช้ |
moduleInProgress |
boolean : ระบุว่าโมดูลอยู่ระหว่างดำเนินการหรือไม่ |
processTestRunStarted
public void processTestRunStarted (TestRecordProto.TestRecord runStartedRecord)
การจัดการโปรโตคอลระเบียนการทดสอบการเรียกใช้บางส่วนหลังจาก testRunStarted(String, int)
เกิดขึ้น
พารามิเตอร์ | |
---|---|
runStartedRecord |
TestRecordProto.TestRecord : Proto บางส่วนที่แสดงการเรียกใช้ |
setGranularResults
public void setGranularResults (boolean granularResults)
พารามิเตอร์ | |
---|---|
granularResults |
boolean |
setInlineRecordOfChildren
public void setInlineRecordOfChildren (boolean inline)
พารามิเตอร์ | |
---|---|
inline |
boolean |
supportGranularResults
public boolean supportGranularResults ()
แสดงค่า True หากเครื่องมือรายงานรองรับผลลัพธ์แบบละเอียด หากไม่ แสดงค่า False
คิกรีเทิร์น | |
---|---|
boolean |
testAssumptionFailure
public final void testAssumptionFailure (TestDescription test, String trace)
เรียกใช้เมื่อการทดสอบแบบอะตอมแจ้งว่าถือว่าเงื่อนไขเป็นเท็จ
พารามิเตอร์ | |
---|---|
test |
TestDescription : ระบุการทดสอบ |
trace |
String : สแต็กเทรซของข้อผิดพลาด |
testAssumptionFailure
public final void testAssumptionFailure (TestDescription test, FailureDescription failure)
เรียกใช้เมื่อการทดสอบแบบอะตอมแจ้งว่าถือว่าเงื่อนไขเป็นเท็จ
พารามิเตอร์ | |
---|---|
test |
TestDescription : ระบุการทดสอบ |
failure |
FailureDescription : FailureDescription อธิบายความล้มเหลวและบริบท |
สิ้นสุดการทดสอบ
public final void testEnded (TestDescription test, long endTime,testMetrics)
ทางเลือกสำหรับ ERROR(/#testEnded(com.android.tradefed.result.TestDescription,Map))
ซึ่งเราสามารถระบุเวลาสิ้นสุดได้โดยตรง ใช้ร่วมกับ testStarted(com.android.tradefed.result.TestDescription, long)
เพื่อให้การวัดผลแม่นยำ
พารามิเตอร์ | |
---|---|
test |
TestDescription : ระบุการทดสอบ |
endTime |
long : เวลาสิ้นสุดการทดสอบซึ่งวัดผ่าน System.currentTimeMillis() |
testMetrics |
: เมตริก ERROR(/Map) รายการที่ระบบปล่อยออกมา |
สิ้นสุดการทดสอบ
public void testEnded (TestDescription test,testMetrics)
รายงานการสิ้นสุดการดำเนินการของกรอบการทดสอบแต่ละรายการ
หากไม่มีการเรียกใช้ testFailed(TestDescription, FailureDescription)
แสดงว่าทดสอบนี้ผ่าน และยังแสดงเมตริกคีย์/ค่าที่อาจแสดงระหว่างการเรียกใช้ชุดทดสอบด้วย
พารามิเตอร์ | |
---|---|
test |
TestDescription : ระบุการทดสอบ |
testMetrics |
: ERROR(/Map) ของเมตริกที่ส่งออก |
testFailed
public final void testFailed (TestDescription test, FailureDescription failure)
รายงานความล้มเหลวของกรอบการทดสอบแต่ละรายการ
ระบบจะเรียกใช้ระหว่าง testStarted และ testEnded
พารามิเตอร์ | |
---|---|
test |
TestDescription : ระบุการทดสอบ |
failure |
FailureDescription : FailureDescription อธิบายความล้มเหลวและบริบท |
testFailed
public final void testFailed (TestDescription test, String trace)
รายงานความล้มเหลวของกรอบการทดสอบแต่ละรายการ
ระบบจะเรียกใช้ระหว่าง testStarted และ testEnded
พารามิเตอร์ | |
---|---|
test |
TestDescription : ระบุการทดสอบ |
trace |
String : สแต็กเทรซของข้อผิดพลาด |
testIgnored
public final void testIgnored (TestDescription test)
เรียกใช้เมื่อระบบจะไม่เรียกใช้การทดสอบ ซึ่งโดยทั่วไปแล้วเป็นเพราะเมธอดทดสอบมีคำอธิบายประกอบด้วย annotate ของ org.junit.Ignore
พารามิเตอร์ | |
---|---|
test |
TestDescription : ระบุการทดสอบ |
โมดูลทดสอบสิ้นสุดแล้ว
public final void testModuleEnded ()
รายงานการสิ้นสุดการเรียกใช้ข้อบังคับ
testModuleStarted
public final void testModuleStarted (IInvocationContext moduleContext)
รายงานการเริ่มต้นการทํางานของโมดูล การเรียกกลับนี้เชื่อมโยงกับ testModuleEnded()
และสามารถเลือกใช้ในลำดับหรือไม่ก็ได้ จะใช้ในระหว่างการเรียกใช้ที่ใช้ข้อบังคับเท่านั้น ซึ่งก็คือเครื่องมือรันไทม์ที่อิงตามชุด
พารามิเตอร์ | |
---|---|
moduleContext |
IInvocationContext : IInvocationContext ของโมดูล |
สิ้นสุดการทดสอบแล้ว
public final void testRunEnded (long elapsedTimeMillis,runMetrics)
รายงานการสิ้นสุดการทดสอบ
พารามิเตอร์ | |
---|---|
elapsedTimeMillis |
long : เวลาที่ผ่านไปที่อุปกรณ์รายงานเป็นมิลลิวินาที |
runMetrics |
: คู่คีย์-ค่าที่รายงานเมื่อสิ้นสุดการทดสอบ |
testRunFailed
public final void testRunFailed (FailureDescription failure)
การทดสอบรายงานไม่เสร็จสมบูรณ์เนื่องจากความล้มเหลวที่อธิบายโดย FailureDescription
พารามิเตอร์ | |
---|---|
failure |
FailureDescription : FailureDescription อธิบายความล้มเหลวและบริบท |
testRunFailed
public final void testRunFailed (String errorMessage)
การเรียกใช้การทดสอบรายงานไม่สำเร็จเนื่องจากข้อผิดพลาดร้ายแรง
พารามิเตอร์ | |
---|---|
errorMessage |
String : String อธิบายสาเหตุของการเรียกใช้ที่ไม่สําเร็จ |
เริ่มการทดสอบแล้ว
public void testRunStarted (String runName, int testCount, int attemptNumber)
รายงานการเริ่มต้นการทดสอบ
พารามิเตอร์ | |
---|---|
runName |
String : ชื่อการทดสอบ |
testCount |
int : จํานวนการทดสอบทั้งหมดในการทํางานทดสอบ |
attemptNumber |
int : หมายเลขคำสั่งซื้อ ซึ่งระบุการพยายามต่างๆ ของ runName เดียวกันที่เรียกใช้หลายครั้ง การทบทวน Number เป็น 0 และควรเพิ่มขึ้นทุกครั้งที่มีการเรียกใช้ใหม่เกิดขึ้น เช่น การทดสอบมีการลองใหม่ 3 ครั้ง ควรมีการเรียกใช้ทั้งหมด 4 ครั้งภายใต้ runName เดียวกัน และ beginNumber จาก 0 ถึง 3 |
testRunStarted
public final void testRunStarted (String runName, int testCount)
รายงานการเริ่มต้นการทดสอบ
พารามิเตอร์ | |
---|---|
runName |
String : ชื่อการทดสอบ |
testCount |
int : จำนวนการทดสอบทั้งหมดในการทดสอบ |
testRunStarted
public void testRunStarted (String runName, int testCount, int attemptNumber, long startTime)
รายงานการเริ่มต้นการทดสอบ
พารามิเตอร์ | |
---|---|
runName |
String : ชื่อการทดสอบ |
testCount |
int : จํานวนการทดสอบทั้งหมดในการทํางานทดสอบ |
attemptNumber |
int : หมายเลขคำสั่งซื้อ ระบุความพยายามที่แตกต่างกันของ runName เดียวกันที่เรียกใช้หลายครั้ง attemptNumber จะเริ่มต้นที่ 0 และควรเพิ่มขึ้นทุกครั้งที่มีการทำงานใหม่ เช่น การทดสอบได้รับการลองใหม่แบบละเอียด 3 ครั้ง ก็ควรมีการเรียกใช้ทั้งหมด 4 ครั้งภายใต้ runName เดียวกัน และ attemptNumber จะอยู่ระหว่าง 0 ถึง 3 |
startTime |
long : เวลาเริ่มต้นการเรียกใช้ ซึ่งวัดผ่าน System.currentTimeMillis() |
testSkipped
public final void testSkipped (TestDescription test, SkipReason reason)
เรียกใช้เมื่อมีการข้ามการทดสอบและไม่ทํางานด้วยเหตุผลที่ปกติแล้วไม่คาดคิด ระบบจะพยายามทดสอบเหล่านี้อีกครั้งเพื่อพยายามเรียกใช้อย่างถูกต้อง
พารามิเตอร์ | |
---|---|
test |
TestDescription : ระบุการทดสอบ |
reason |
SkipReason : SkipReason |
testStarted
public final void testStarted (TestDescription test, long startTime)
ทางเลือกสำหรับ testStarted(com.android.tradefed.result.TestDescription)
ซึ่งเราจะระบุเวลาที่เริ่มการทดสอบด้วย ร่วมกับ ERROR(/#testEnded(com.android.tradefed.result.TestDescription,long,Map))
เพื่อการวัดผลที่แม่นยำ
พารามิเตอร์ | |
---|---|
test |
TestDescription : ระบุการทดสอบ |
startTime |
long : เวลาเริ่มต้นการทดสอบซึ่งวัดผ่าน System.currentTimeMillis() |
testStarted
public final void testStarted (TestDescription test)
รายงานการเริ่มต้นของกรณีทดสอบแต่ละรายการ อินเทอร์เฟซเก่า ควรใช้ testStarted(com.android.tradefed.result.TestDescription)
เมื่อเป็นไปได้
พารามิเตอร์ | |
---|---|
test |
TestDescription : ระบุการทดสอบ |
วิธีการที่มีการป้องกัน
หลังจากโมดูลสิ้นสุด
protected void afterModuleEnd ()
beforeModuleStart
protected void beforeModuleStart ()
createModuleChildReference
protected TestRecordProto.ChildReference createModuleChildReference (TestRecordProto.TestRecord record)
สร้างข้อมูลอ้างอิงย่อยสําหรับข้อบังคับ
พารามิเตอร์ | |
---|---|
record |
TestRecordProto.TestRecord |
คิกรีเทิร์น | |
---|---|
TestRecordProto.ChildReference |