จุดประสงค์ของคำอธิบายประกอบ @SmallTest, @MediumTest และ @LargeTest ใน Android คืออะไร


99

ฉันเพิ่งเคยใช้ Android และเคยเห็นโค้ดตัวอย่างที่ใช้คำอธิบายประกอบเหล่านี้ ตัวอย่างเช่น:

@SmallTest
public void testStuff() {
    TouchUtils.tapView(this, anEditTextView);
    sendKeys("H E L P SPACE M E PERIOD");
    assertEquals("help me.", anEditTextView.getText().toString());
}

คำอธิบายประกอบนั้นทำอะไรได้บ้าง?

คำตอบ:


9

นอกเหนือจากคำตอบของ Davidannและคำถามส่วนใหญ่ของ OPในความคิดเห็น:

ในบริบทของโค้ดด้านบนมันทำอะไรได้จริงยกเว้นทิ้งโน้ตไว้ให้นักพัฒนาคนอื่น ๆ ? มันบังคับอะไรไหม? มีเครื่องมือใดบ้างที่ใช้คำอธิบายประกอบนี้ จุดประสงค์ในการพัฒนา Android คืออะไร?

คุณสามารถเรียกใช้กลุ่มการทดสอบที่มีคำอธิบายประกอบเฉพาะ

จากเอกสาร AndroidJUnitRunner :

การรันขนาดการทดสอบเฉพาะเช่นคำอธิบายประกอบด้วยSmallTestหรือMediumTestหรือLargeTest :

adb shell นเครื่องดนตรี -w -e ขนาด [เล็ก | กลาง | ใหญ่] com.android.foo/android.support.test.runner.AndroidJUnitRunner

คุณยังสามารถตั้งค่าพารามิเตอร์เหล่านี้ผ่านการไล่ระดับสี:


    android {
        ...
        defaultConfig {
            ...
            testInstrumentationRunnerArgument 'size', 'Large'
        }
    }

ผ่าน gradle:

-Pandroid.testInstrumentationRunnerArguments.size=small

ดูโพสต์บล็อก Doug Stevensonรวมถึงโพสต์บล็อกนี้สำหรับรายละเอียดเพิ่มเติม


ตกลงดังนั้นในระยะสั้นฉันสามารถเรียกใช้ชุดทดสอบ @SmallTest ด้วยadb shell am instrument -w -e size small com.android.foo/android.support.test.runner.AndroidJUnitRunner; ขอบคุณ
kosiara - Bartosz Kosarzycki

เราจะระบุคำอธิบายประกอบในคำสั่ง gradle ได้อย่างไร? ตัวอย่างเช่น:./gradlew connectedDebugAndroidTest -size MediumTest
Mr-IDE

@ Mr-IDE คุณได้รับคำตอบหรือไม่?
John

139

บล็อกโพสต์นี้อธิบายได้ดีที่สุด โดยทั่วไปมีดังต่อไปนี้:

แผนภูมิการทดสอบ

  1. เล็ก: การทดสอบนี้ไม่โต้ตอบกับระบบไฟล์หรือเครือข่ายใด ๆ
  2. สื่อ: เข้าถึงระบบไฟล์ในกล่องซึ่งกำลังเรียกใช้การทดสอบ
  3. ใหญ่: เข้าถึงระบบไฟล์ภายนอกเครือข่าย ฯลฯ

ตามบล็อกนักพัฒนา Androidการทดสอบขนาดเล็กควรใช้เวลา <100ms การทดสอบปานกลาง <2 วินาทีและการทดสอบขนาดใหญ่ <120 วินาที

ดูหน้านี้ (ค้นหา "@SmallTest") เกี่ยวกับวิธีระบุว่าจะเรียกใช้การทดสอบใด


13
ฉันเห็น (และจำได้ว่าอ่านบทความนั้นเมื่อเดือนที่แล้ว) แต่ในบริบทของโค้ดด้านบนมันทำอะไรได้จริงยกเว้นทิ้งโน้ตไว้ให้นักพัฒนารายอื่น? มันบังคับอะไรไหม? มีเครื่องมือใดบ้างที่ใช้คำอธิบายประกอบนี้ จุดประสงค์ในการพัฒนา Android คืออะไร?
Eric Palakovich Carr

3
@Eric Android TestRunner ช่วยให้คุณระบุขนาดของการทดสอบที่จะเรียกใช้
Cheryl Simon

7
มีบล็อกใหม่จาก Google เกี่ยวกับเรื่องนี้: plus.google.com/+AndroidDevelopers/posts/TPy1EeSaSg8
k29

1
@SmallTest เลิกใช้แล้ว
Neon Warge

1
@NeonWarge ใช้นำเข้า android.support.test.filters ทดสอบ [ขนาดเล็ก];
Alexander Sidikov Pfeif

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.