เหตุใดนักวิ่งทดสอบ Android จึงรายงานว่า "ชุดทดสอบว่าง"


98

ฉันเอาหัวพิงกำแพงพยายามหาสาเหตุว่าทำไม IntelliJ / Android จึงรายงาน "ชุดทดสอบว่างเปล่า" ฉันมีโปรเจ็กต์เล็ก ๆ ที่มีโมดูล IntelliJ สองโมดูล ("โปรเจ็กต์" ใน Eclipse) โมดูลทดสอบหน่วยมี AndroidManifest.xml ของตัวเองซึ่งฉันได้วางไว้ที่ด้านล่าง ฉันกำลังพยายามเรียกใช้ActivityUnitTestCaseเนื่องจากการทดสอบจะขึ้นอยู่กับContext-object

nilzor.myappชื่อแพคเกจของโมดูลหลักคือ ชื่อ pacakge ของโมดูลทดสอบคือnilzor.myapp.tests

เหตุใดนักวิ่งทดสอบจึงไม่ตรวจจับtestBlah()-method เป็นการทดสอบ

<?xml version="1.0" encoding="utf-8"?>
<!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="nilzor.myapp.tests"
          android:versionCode="1"
          android:versionName="1.0">
    <!-- We add an application tag here just so that we can indicate that
         this package needs to link against the android.test library,
         which is needed when building test cases. -->
    <application>
        <uses-library android:name="android.test.runner"/>
    </application>
    <!--
    This declares that this application uses the instrumentation test runner targeting
    the package of nilzor.myapp.  To run the tests use the command:
    "adb shell am instrument -w nilzor.myapp.tests/android.test.InstrumentationTestRunner"
    -->
    <instrumentation android:name="android.test.InstrumentationTestRunner"
                     android:targetPackage="nilzor.myapp"
                     android:label="Tests for nilzor.myapp"/>
</manifest>

และนี่คือคลาสทดสอบของฉัน:;

package nilzor.myapp.tests;

public class NilzorSomeTest<T extends Activity> extends ActivityUnitTestCase<T>{
    public NilzorSomeTest(Class<T> activityClass){
        super(activityClass);
    }

    @SmallTest
    public void testBlah(){
        assertEquals(1,1);
    }
}

ฉันได้อ่านพื้นฐานการทดสอบเอกสารการทดสอบกิจกรรมและลองทำตามบล็อกการทดสอบ Hello worldนี้แม้ว่าจะเป็นสำหรับ Eclipse ก็ตาม ฉันไม่สามารถให้นักวิ่งทดสอบค้นหาและเรียกใช้การทดสอบของฉันได้ ผมทำอะไรผิดหรือเปล่า?

บางคำถามที่ฉันยังไม่แน่ใจคือ:

  1. ฉันต้องการคำอธิบายประกอบเหนือวิธีทดสอบหน่วยหรือไม่?
  2. ฉันต้องใส่คำนำหน้าเมธอดนี้ด้วย "test" หรือว่าเป็นเพียงการทดสอบ JUnit
  3. ฉันสามารถทำการทดสอบในแพ็คเกจย่อยได้nilzor.myapp.testsหรือไม่?

แต่คำถามหลักของโพสต์นี้คือทำไมนักวิ่งทดสอบไม่ตรวจพบการทดสอบของฉัน ?


สำหรับจุดที่ 3 หากคุณใช้ Android Studio ขอแนะนำcmd+shift+tทางลัดที่จะสร้างคลาสทดสอบโดยอัตโนมัติในตำแหน่งแพ็คเกจที่ถูกต้องซึ่งตรงกับคลาสที่คุณกำลังแก้ไข
David Argyle Thacker

ในกรณีที่ไม่มีใครทำเหมืองเช่นเดียวกับฉัน อย่าลืมใส่@Testเครื่องหมายไว้ด้านบนของการทดสอบ
Matt D

คำตอบ:


70

คุณต้องระบุตัวสร้างเริ่มต้นสำหรับคลาสทดสอบของคุณตัวอย่างเช่น:

package nilzor.myapp.tests;

public class NilzorSomeTest extends ActivityUnitTestCase<ActivityYouWantToTest>{
    public NilzorSomeTest(){
        super(ActivityYouWantToTest.class);
    }

    @SmallTest
    public void testBlah(){
        assertEquals(1,1);
    }
}

เกี่ยวกับคำถามอื่น ๆ ของคุณ:

  1. ไม่การทดสอบของฉันยังคงดำเนินไปโดยไม่มีคำอธิบายประกอบใด ๆ แต่ฉันคิดว่าเป็นแนวทางปฏิบัติที่ดีที่จะมี ช่วยให้คุณระบุขนาดของการทดสอบที่จะเรียกใช้ ดูคำอธิบายประกอบ @SmallTest, @MediumTest และ @LargeTest ใน Android คืออะไร สำหรับรายละเอียดเพิ่มเติม

  2. ใช่คุณต้องมีคำนำหน้า "ทดสอบ" InteliJ ให้คำเตือน "method never used" เมื่อไม่มีคำนำหน้า "test" และข้ามวิธีนั้นไประหว่างการทดสอบ

  3. ใช่. ฉันมีการจัดระเบียบการทดสอบเป็นแพ็กเกจย่อยและดูเหมือนว่าจะทำงานได้ดี


5
สิ่งนี้ไม่จำเป็นหากคุณใช้ ActivityTestRule
Yair Kukielka

การเพิ่มตัวสร้างเริ่มต้นทำให้ฉันได้ผล
Dragan Marjanović

54

หากสิ่งนี้เกิดขึ้น "ทันทีทันใด" หรือ "ใช้งานได้เมื่อ 5 นาทีที่แล้ว" วิธีแก้ปัญหาของฉันคือเข้าสู่การกำหนดค่า Run / Debug และลบการกำหนดค่าใด ๆ ใน "Android Tests" บางครั้งการกำหนดค่าเหล่านี้อาจเสียหายหากฉันปรับโครงสร้างคลาสที่อยู่ระหว่างการทดสอบ (ตัวอย่างเช่นโดยการย้ายไปยังแพ็คเกจใหม่)

ป้อนคำอธิบายภาพที่นี่


สิ่งนี้ได้ผลสำหรับฉัน ฉันได้รับข้อผิดพลาดชุดทดสอบว่างเปล่า อาจเป็นเพราะฉันเพิ่ม PowerMockito หลังจากสร้างการกำหนดค่าในตอนแรก
Ajith Memana

ฉันมักจะมีปัญหานี้และปัญหาอื่น ๆ ในการเรียกใช้การทดสอบซึ่งการกำหนดค่าการสร้างทำงานได้อย่างถูกต้องก่อนหน้านี้ ฉันสามารถแก้ไขได้โดยใช้แนวทางนี้
stevehs 17

3
หลังจากลบการกำหนดค่าฉันคลิกขวาที่แพ็กเกจทดสอบในตัวสำรวจโครงการ (มุมมอง Android) แล้วเลือกCreate 'Tests in XXX...- จากนั้นทำงานอีกครั้ง
TmTron

9

ไม่มีการแก้ไขปัญหาข้างต้นสำหรับฉัน สิ่งที่ช่วยได้คือทำตามคำแนะนำ :

สร้างการกำหนดค่าการทดสอบ

ใน Android Studio:

  • เปิดเมนูเรียกใช้ -> แก้ไขการกำหนดค่า
  • เพิ่มการ กำหนดค่าAndroid Testsใหม่
  • เลือกโมดูล
  • เพิ่มเครื่องมือวัดเฉพาะ:

  android.support.test.runner.AndroidJUnitRunner

รันการกำหนดค่าที่สร้างขึ้นใหม่


6

ฉันมีปัญหาที่คล้ายกัน ไม่แน่ใจว่าเหตุใดจึงเกิดขึ้น แต่ฉันสามารถแก้ไขได้โดยไปที่: "File"> "Invalidate Caches / Restart" ใน Android Studio


สิ่งนี้แก้ไขให้ฉันเมื่อฉันได้รับข้อผิดพลาดเดียวกันกับ OP หลังจากปรับชื่อคลาสทดสอบของฉันใหม่
Marco

4

ฉันไม่รู้ว่ามันช่วยสำหรับ Android Studio หรือเปล่า แต่ฉันมีข้อขัดแย้งของ Intellij-Gradle แก้ไขได้โดย "คลิกขวา" ที่ไฟล์ทดสอบแล้วกด "compile file ... Test.java" หลังจากนั้นฉันสามารถทำการทดสอบเดี่ยวอีกครั้ง


2
"ไฟล์คอมไพล์" บน * Test.java อยู่ที่ไหน Android Studio เวอร์ชันใด
Mark Lapasa

อย่างที่ฉันพยายามพูดข้างต้นฉันไม่ได้ใช้ Android Studio ฉันใช้ Intellij 15 proffesional ภาพคลิกขวา - ดรอปดาวน์ <- ฉันวางภาพที่นี่
kotlinski

4

ฉันมีปัญหาเดียวกันใน Android Studio 2.3.1 ปรากฎว่าเป็นเพียงข้อบกพร่องของ AS การเรียกใช้การทดสอบเดียวกันในเวอร์ชัน 2.2.1 ทำได้ดี

หากคุณใช้ Android Studio ในช่อง Cannary เท่านั้นขอแนะนำให้คุณติดตั้งเวอร์ชันที่เสถียรด้วย http://tools.android.com/tips/using-multiple-android-studio-versions


เหมือนกันสำหรับฉันเสถียร 3.1.2 ใช้งานได้ 3.2 canary 15 ไม่ได้
arekolek

3

ฉันมีการทดสอบที่ทำงานได้ดีจนกระทั่งgradleได้รับการอัปเกรด android studio

นอกเหนือจากการเพิ่มตัวสร้างเริ่มต้นในการทดสอบของคุณคุณอาจต้องทำสิ่งเหล่านี้เพื่อให้ชุดทดสอบของคุณทำงานได้

ภายใต้การสร้างsrc/ androidTest/java/<your-package-name>/testหมายเหตุandroidTest. สิ่งอื่นใดรวมถึงinstrumentTestจะไม่ทำงาน

เพิ่มสิ่งนี้ใน build.gradle

sourceSets {
    testLocal {
        java.srcDir file('src/androidTest/java')
        resources.srcDir file('src/androidTest/resources')
    }
}



android{
    sourceSets {
       instrumentTest.setRoot('src/androidTest/')
    }
}

dependencies{
     testLocalCompile 'junit:junit:4.11'
}

task localTest(type: Test, dependsOn: assemble) {
    testClassesDir = sourceSets.testLocal.output.classesDir

    android.sourceSets.main.java.srcDirs.each { dir ->
        def buildDir = dir.getAbsolutePath().split('/')
        buildDir = (buildDir[0..(buildDir.length - 4)] + ['build', 'classes', 'debug']).join('/')

        sourceSets.testLocal.compileClasspath += files(buildDir)
        sourceSets.testLocal.runtimeClasspath += files(buildDir)
    }

    classpath = sourceSets.testLocal.runtimeClasspath
}

check.dependsOn localTest

เพิ่มสิ่งนี้ในไฟล์ AndroidManifest.xml

 <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:label="Tests for my packaged app"
        android:targetPackage="<my-package-name>.test" />

3

สำหรับ Intellij 15 ฉันแก้ไขปัญหานี้โดย:

  1. กำลังเปิดการตั้งค่า "โครงสร้างโครงการ"
  2. คลิก 'โมดูล' (ทางซ้าย)
  3. 'แหล่งที่มา' แท็บ
    a. คลิกขวาที่ไดเร็กทอรีต้นทางของคุณ (โดยปกติคือ src) คลิก 'Source'
    ข. คลิกขวาที่ไดเรกทอรีทดสอบของคุณคลิก 'ทดสอบ'
    c คลิกขวาที่ไดเรกทอรีออกของคุณคลิก 'ไม่รวม'
  4. ไปที่แท็บ "เส้นทาง"
    ก. คลิกปุ่มตัวเลือก 'Use module compile output path'
    b. เลือกไดเร็กทอรีพา ธ เอาต์พุตของคุณสำหรับ 'Output Path'
    c เลือกไดเรกทอรีเส้นทางการทดสอบของคุณสำหรับ 'Test output Path'
  5. คลิกตกลง

3

เห็นได้ชัดว่าคุณต้องมีอุปกรณ์เป้าหมายเพื่อทำการทดสอบของคุณเนื่องจากเป็นการทดสอบด้วยเครื่องมือ ด้วยเหตุผลบางประการในบางครั้ง Android Studio จะไม่ขอให้คุณชี้ไปที่อุปกรณ์เป้าหมายนี้และเพียงแค่แจ้งข้อความ "Empty Test Suite" มีหลายวิธีในการแก้ไขปัญหาดังต่อไปนี้:

  • เรียกใช้แอปหลักของคุณและเลือกอุปกรณ์เป้าหมายหรือ

  • ไปที่การกำหนดค่า Run (Run / Run ... / Edit Configurations) และแก้ไขDeployement Target Options


เพียงเพื่อช่วยใครบางคนหากพวกเขาลองใช้วิธีแก้ปัญหาของคุณ ในกรณีของฉันฉันต้องเรียกใช้แอปจริงบนอุปกรณ์ / โปรแกรมจำลองก่อนและหลังจากนั้น AndroidTest ของฉันก็สามารถเห็นอุปกรณ์เพื่อทำการทดสอบได้ หลังจากนั้นทุกอย่างก็ทำงาน ให้บวกหนึ่งสำหรับคำตอบ
A_P

2

ในกรณีของฉันคำตอบก่อนหน้านี้ไม่ได้ผล การแก้ปัญหาเป็นเพียงแค่การย้ายระดับการทดสอบเพื่อแพคเกจอื่น

สิ่งนี้เกิดขึ้นภายใต้ androidTest/


2

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

ข้อผิดพลาดชุดทดสอบว่างเปล่า

ฉันได้ลองรันการทดสอบโดยตรงจากเทอร์มินัลด้วยadb shell am instrument -w -r -e package your.package -e debug false android.support.test.runner.AndroidJUnitRunnerไฟล์. ด้วยสิ่งนี้จะพิมพ์ให้คุณได้มากขึ้นเกี่ยวกับข้อยกเว้น


2

ฉันมีปัญหานี้เพราะฉันมีสิ่งนี้ใน build.gradle ของฉัน:

testOptions {
    execution "ANDROID_TEST_ORCHESTRATOR"
}

แม้ว่าฉันจะไม่ได้ใช้ Android Test Orchestrator (ต้องคัดลอกจากบทเรียนโดยไม่ได้ตั้งใจ)

ความคิดเห็นนั้นแก้ไขได้สำหรับฉัน


1

ไม่มีวิธีแก้ปัญหาอื่นใดที่ใช้ได้ผลสำหรับฉัน แต่ฉันสามารถทำให้มันทำงานได้ง่ายๆโดยการถอนการติดตั้งแอพหรือชุดทดสอบที่มีอยู่แล้วเรียกใช้การทดสอบ


ที่ช่วยฉัน ฉันทำการเปลี่ยนแปลงในระดับฐานข้อมูลก่อนทำการทดสอบดังนั้นชั้นเรียนภายใต้การทดสอบด้วยเครื่องมือจึงไม่สามารถทำงานได้ เป็นเรื่องแปลกที่ Android Studio แสดงข้อความที่ไม่เกี่ยวข้องดังกล่าว
PetroCliff

1

ในกรณีของฉันโครงการที่ฉันกำลังดำเนินการมีสองโมดูล ไม่พบวิธีแก้ไขใด ๆ สำหรับข้อผิดพลาดนี้ที่ช่วยฉันได้และจากนั้นฉันก็รู้ว่าถ้าฉันเพิ่มการอ้างอิงการทดสอบในทั้งสองไฟล์ build.gradle การทดสอบจะเริ่มทำงานอย่างน่าอัศจรรย์ ไม่สำคัญว่าการทดสอบของคุณจะอยู่ในโมดูลเพียง 1 โมดูลไฟล์ gradle ทั้งสองไฟล์จะต้องมีการอ้างอิงและค่า testInstrumentationRunner

ดังนั้นหากชอบฉันไม่มีคำตอบอื่นใดที่ช่วยคุณได้ลองเพิ่มบรรทัดเหล่านี้ลงในไฟล์ build.gradle ของแต่ละโมดูลของคุณ:

android {    
    ....
    defaultConfig {
        ...
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }  
}

จากนั้นเพิ่ม:

dependencies {
    ...
    // Test
    androidTestCompile 'com.android.support:support-annotations:23.4.0'
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support.test:rules:0.5'

}


1

ฉันมีปัญหาเดียวกันและเหตุผลก็คือชั้นเรียนของฉันไม่มีแบบทดสอบท้ายชื่อชั้นเรียน!


1

ปัญหาของฉันเกิดจากข้อยกเว้นที่เกิดขึ้นในไฟล์ @BeforeClassวิธีการทดสอบกรณีของฉัน บางอย่างไม่ได้ทำให้การทดสอบล้มเหลว - ฉันพบมันโดยการตรวจสอบเอาต์พุต logcat เท่านั้น

ฉันแก้ไขข้อยกเว้นและทันใดนั้นการทดสอบของฉันก็ทำงาน!


เหมือนกับฉัน. ดูเหมือนว่าข้อยกเว้นใน BeforeClass จะไม่แสดงอย่างถูกต้องในแผงการวิ่ง
Maverick Meerkat

1

หลังจากประสบปัญหาในวันนี้ - ไม่สามารถเรียกใช้การทดสอบ Android ที่มีอุปกรณ์ด้วยข้อผิดพลาด Empty suite - ฉันพบปัญหา git เกี่ยวกับปัญหานี้และขอบคุณ Stephan Linzner ฉันสามารถทำการทดสอบ

tl; dr คุณต้องคลิกขวาที่แพ็กเกจทดสอบไม่ใช่คลาสเพื่อให้การทดสอบทำงาน

อ้างอิง: https://github.com/googlecodelabs/android-testing/issues/27#issuecomment-219074863


0

บทความนี้ช่วยฉัน: ชุดทดสอบว่างเปล่า

โดยทั่วไปฉันต้องสร้างแพ็คเกจ - instrumentTest / java - ภายใต้ไดเร็กทอรี src ของฉันและทำการทดสอบทั้งหมดที่นั่น จากนั้นฉันสามารถดำเนินการทดสอบเหล่านี้ทีละรายการ


0

ฉันมีโปรเจ็กต์ Java ดิบที่เกิดเหตุการณ์นี้ขึ้น เพียงแค่ Java + JUnit4 มันอยู่กับบางสิ่งในไฟล์. ina / หรือ. iml ของคุณ ฉันทิ้งของฉันนำเข้าใหม่และในที่สุดการทดสอบก็ดำเนินอีกครั้ง


0

คลาสทดสอบอาจแยกออกจากการคอมไพล์ แก้ไขในการตั้งค่าคอมไพเลอร์ - ไม่รวม


0

ต่อไปนี้คือขั้นตอนการดีบักของฉันที่ฉันต้องทำเมื่อ Android Studio ตัดสินใจหยุดการทดสอบ / การดีบักในทันที (และเด็กผู้ชายก็ทำเช่นนี้บ่อยครั้งที่น่าอับอาย !!):

  • สร้าง: →สร้างโครงการใหม่
  • รีสตาร์ทอุปกรณ์: รีสตาร์ทอุปกรณ์ / โปรแกรมจำลองของคุณแล้วลองอีกครั้ง
  • สวิตช์อุปกรณ์: หากคุณมีทั้งโทรศัพท์ทั่วไปและตัวจำลองให้ถอดปลั๊กออกและลองใช้งานกับอุปกรณ์เพียงเครื่องใดเครื่องหนึ่ง
  • Android Studio: ไฟล์ -> ทำให้แคชไม่ถูกต้องและรีสตาร์ท
  • การตรวจสอบกิจกรรม / ตัวจัดการงาน: จัดเรียงกระบวนการตามชื่อดูว่ามีกระบวนการนิรนามที่ใช้ ram จำนวนมากหรือไม่นี่เป็นกระบวนการ "ผี" จากสตูดิโอ Android ที่ต้องถูกฆ่า
  • git revert: ลองซ่อน / เปลี่ยนรหัสล่าสุดของคุณ บางครั้งมีข้อผิดพลาดในการคอมไพล์ที่ Android Studio / gradle พลาดและมันจะพยายามเรียกใช้โค้ดที่ไม่สามารถคอมไพล์ได้
  • ถอนการติดตั้งแล้วติดตั้ง Android Studio ใหม่

ฉันจะแก้ไขเพิ่มเติมเมื่อเจอปัญหา!


0

ฉันไม่ได้ทำอะไรเลยและปัญหาก็หายไปหลังจากครึ่งวันแห่งความเจ็บปวดฉันเปิดและปิดโครงการหลายครั้งดำเนินการทดสอบแต่ละชั้นเรียนด้วยตนเองบางทีนั่นอาจช่วยแก้ไขปัญหาของฉันได้


0

ในสตูดิโอ Android ที่มี spock framework ฉันได้เปลี่ยนเวอร์ชันของ gradle จาก 2.2.2 เป็น 3.2.1 และทุกอย่างก็ทำได้ดี


0

คำตอบที่ยอมรับไม่ได้ช่วยแก้ปัญหาของฉัน ดังนั้นฉันจึงตัดสินใจที่จะคัดลอกExampleInstrumentedTestซึ่งสร้างขึ้นโดยค่าเริ่มต้นใน Android Studio และทำงานโดยไม่มีปัญหาใด ๆ เปลี่ยนชื่อในระหว่างกระบวนการคัดลอก (ไม่มี Refactor-> เปลี่ยนชื่อหลังจากคัดลอก!) และวางเนื้อหาของการทดสอบหน่วยของฉันลงในนั้น หลังจากนั้นข้อผิดพลาดก็หายไป


0

ฉันพบข้อผิดพลาด "ชุดทดสอบว่างเปล่า" เมื่อพยายามเรียกใช้การทดสอบหน่วยในเครื่องในโครงการ Android Studio 3.0 ของฉัน

หลังจากอ่านเอกสารสำหรับนักพัฒนา Android ฉันก็รู้ได้อย่างรวดเร็วว่าปัญหาเกิดจากการกำหนดค่าการไล่ระดับของฉันซึ่งรวมถึงบรรทัดต่อไปนี้

testImplementation 'com.android.support.test:runner:0.5'
testImplementation 'com.android.support.test:rules:0.5'

ชั้น AndroidJUnitRunner วิ่งทดสอบ JUnit ที่ช่วยให้คุณทำงาน JUnit 3- หรือ JUnit 4 รูปแบบการเรียนการทดสอบบนอุปกรณ์ Android

เนื่องจากการทดสอบของฉันเป็นแบบโลคัลดังนั้นจึงไม่จำเป็นต้องรันบนอุปกรณ์ใด ๆ การลบรายการ com.android.support.test ... ข้างต้นทำให้ฉันสามารถดำเนินการทดสอบหน่วยได้


0

ฉันกำลังทำการแทรกในฐานข้อมูลในเมธอด @BeforeClass ฉันรู้ว่าฉันมีปัญหาในการแมปวัตถุ / ฐานข้อมูล ปัญหาการทำแผนที่ข้อมูลนี้เป็นสาเหตุของปัญหานี้สำหรับฉัน


0

ในกรณีของฉันฉันมีการทดสอบเครื่องมือandroidTest/java/<package.name>/MyTestingClassแต่ฉันได้ตั้งค่าตัวแปรบิวด์ปัจจุบันของฉันเป็น "ก่อนการผลิตจริง" และนั่นคือประเด็น! ตามที่ระบุในเอกสารของ Android Studio :

โดยค่าเริ่มต้นการทดสอบทั้งหมดจะทำงานกับประเภทการสร้างการดีบัก

ข้อความClass not found. Empty test suite.ยังคงปรากฏจนกว่าฉันจะทำสิ่งนี้:

  1. เพิ่มบรรทัดนี้ในbuild.gradleของฉัน:

    android{
        [...]
        testBuildType "preproduction"
    }
    
  2. Gradle ที่ซิงโครไนซ์
  3. ลบการกำหนดค่าการทดสอบก่อนหน้าของฉันเนื่องจากไม่ได้คำนึงถึงการซิงโครไนซ์ Gradle นี้

จากนั้นฉันก็ทำการทดสอบอีกครั้งและคราวนี้มันสมบูรณ์แบบ !!!


0

ฉันเคยเกิดเหตุการณ์นี้ขึ้นกับฉันเมื่อฉันทำเครื่องหมายตัวแปรคลาสที่ไม่ใช่การเยาะเย้ยผิดพลาดด้วยคำอธิบายประกอบ@Mock ลบคำอธิบายประกอบออกและการทดสอบดำเนินไปได้สำเร็จ เหตุการณ์นี้เกิดขึ้นกับ Junit 4.5 บน Android Studio


0

ไม่ใช่วิธีแก้ปัญหา แต่เป็นวิธีแก้ปัญหาที่จะช่วยให้คุณกลับมาติดตามได้อย่างรวดเร็ว:

  1. ประการแรกค้นหาการทดสอบที่ได้ผล ฉันกำลังเขียนการทดสอบใหม่ซึ่งฉันได้รับข้อผิดพลาด 'ชุดทดสอบว่าง' ฉันทำการทดสอบอื่น ๆ และพวกเขาก็ทำงานตามปกติ

  2. คัดลอกไฟล์ทดสอบที่ใช้งานได้ เรียกใช้เพื่อให้แน่ใจว่าสำเนานี้ทำงานได้เหมือนต้นฉบับ

  3. ถอดเนื้อหาและแทนที่ด้วยรหัสทดสอบใหม่ของคุณ

ตอนนี้การทดสอบควรใช้งานได้แล้ว

เราใช้เวลาประมาณสองชั่วโมงในการพยายามหาสาเหตุ แต่ก็ไม่มีประโยชน์

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