एंड्रॉइड टेस्ट रनर रिपोर्टिंग "खाली टेस्ट सूट" क्यों है?


98

मैं यहां दीवार के खिलाफ अपना सिर पीट रहा हूं, यह पता लगाने की कोशिश कर रहा हूं कि इंटेलीजे / एंड्रॉइड "खाली टेस्ट सूट" की रिपोर्ट क्यों कर रहा है। मेरे पास दो IntelliJ मॉड्यूल (ग्रहण में "प्रोजेक्ट") के साथ एक छोटी परियोजना है। यूनिट टेस्ट मॉड्यूल का अपना AndroidManifest.xml है, जिसे मैंने सबसे नीचे चिपकाया है। मैं एक चलाने की कोशिश कर रहा हूं ActivityUnitTestCase, क्योंकि परीक्षण Context-object पर निर्भर होंगे।

मुख्य मॉड्यूल का पैकेज नाम है nilzor.myapp। टेस्ट माड्यूल का pacakge नाम हैnilzor.myapp.tests

टेस्ट रनर testBlah()-मैथोड को टेस्ट के रूप में क्यों नहीं पता लगा रहा है ?

<?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);
    }
}

मैंने टेस्टिंग फंडामेंटल्स , एक्टिविटी टेस्टिंग डॉक्यूमेंट को पढ़ा है और इस हैलो वर्ल्ड टेस्ट ब्लॉग को फॉलो करने की कोशिश की है , भले ही यह एक्लिप्स के लिए हो। मुझे अपना परीक्षण खोजने और चलाने के लिए परीक्षण धावक नहीं मिल सकता है। मैं क्या गलत कर रहा हूं?

कुछ प्रश्न मुझे अभी भी अनिश्चित हैं:

  1. क्या मुझे यूनिट परीक्षण विधि के ऊपर एनोटेशन की आवश्यकता है?
  2. क्या मुझे "परीक्षण" के साथ विधि को उपसर्ग करने की आवश्यकता है, या यह केवल JUnit परीक्षणों के लिए है?
  3. क्या मेरे पास उप-पैकेज में परीक्षण हो सकते हैं nilzor.myapp.tests?

लेकिन इस पोस्ट का मुख्य सवाल यह है कि टेस्ट रनर मेरे टेस्ट का पता क्यों नहीं लगाता है ?


बिंदु 3 के लिए, यदि आप एंड्रॉइड स्टूडियो का उपयोग कर रहे हैं, तो मैं उस cmd+shift+tशॉर्टकट की सलाह देता हूं जो वर्तमान में आपके द्वारा संपादित की जा रही कक्षा से मेल खाने वाले सही पैकेज स्थान में स्वचालित रूप से एक टेस्ट क्लास बनाएगा।
डेविड अर्गले ठाकर

बस के मामले में किसी और के रूप में मैं कर रहा हूँ अनुपस्थित खनन है। सुनिश्चित करें कि आप @Testमार्कर को परीक्षण के शीर्ष पर रखना नहीं भूले ।
मैट डी

जवाबों:


70

आपको अपने परीक्षण वर्ग के लिए डिफ़ॉल्ट कंस्ट्रक्टर प्रदान करने की आवश्यकता है, उदाहरण के लिए:

package nilzor.myapp.tests;

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

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

आपके अन्य सवालों के बारे में:

  1. नहीं, मेरे परीक्षण अभी भी किसी भी एनोटेशन के बिना चलते हैं, लेकिन मुझे लगता है कि यह उनके लिए एक अच्छा अभ्यास है। यह आपको चलाने के लिए परीक्षणों के आकार को निर्दिष्ट करने की अनुमति देता है। देखें कि Android में @SmallTest, @MediumTest, और @LargeTest एनोटेशन का उद्देश्य क्या है? अधिक विस्तार के लिए।

  2. हां, आपको "परीक्षण" उपसर्ग की आवश्यकता है। InteliJ "पद्धति का उपयोग कभी नहीं करता" चेतावनी देता है जब कोई "परीक्षण" उपसर्ग नहीं होता है, और परीक्षण चलाने के दौरान उस विधि को छोड़ देता है।

  3. हाँ। मेरे पास मेरे परीक्षण उपपंजी में आयोजित किए गए हैं और ऐसा लगता है कि यह अच्छी तरह से काम कर रहा है।


5
यह आवश्यक नहीं है यदि आप एक्टिविटीटेस्ट
नियम

डिफॉल्ट कंस्ट्रक्टर को जोड़ने ने मेरे लिए काम किया।
ड्रैगन मार्जनोविच

54

यदि यह "अचानक" हो रहा है या "यह 5 मिनट पहले काम कर रहा था" तो मेरा समाधान रन / डिबग कॉन्फ़िगरेशन में जाना और "एंड्रॉइड टेस्ट" के तहत किसी भी कॉन्फ़िगरेशन को निकालना था। कभी-कभी ये विन्यास भ्रष्ट हो जाते हैं यदि मैं परीक्षण के तहत कक्षा को रिफ्लेक्टर करता हूं (उदाहरण के लिए एक नए पैकेज पर जाकर)।

यहां छवि विवरण दर्ज करें


इसने मेरे लिए काम किया। मुझे खाली टेस्ट सूट की त्रुटि मिल रही थी। यह हो सकता है क्योंकि कॉन्फ़िगरेशन शुरू होने के बाद मैंने PowerMockito को जोड़ा।
अजित मेमन

मेरे पास अक्सर यह और अन्य समस्याएं चल रही हैं, जहां कॉन्फ़िगरेशन का निर्माण पहले ठीक से काम करता था। मैं इस दृष्टिकोण को ले कर उन्हें ठीक करने में सक्षम हूं।
स्टीवेह्स 17

3
कॉन्फ़िगरेशन हटाने के बाद, मैं प्रोजेक्ट एक्सप्लोरर (एंड्रॉइड व्यू) में एक परीक्षण-पैकेज को राइट-क्लिक करता हूं और चयन करता Create 'Tests in XXX...
हूं

9

उपरोक्त में से किसी ने भी मेरे लिए इसे ठीक नहीं किया। निर्देशों का पालन करने में क्या मदद मिली :

एक परीक्षण कॉन्फ़िगरेशन बनाएँ

Android स्टूडियो में:

  • रन मेनू खोलें -> कॉन्फ़िगरेशन संपादित करें
  • एक नया Android टेस्ट कॉन्फ़िगरेशन जोड़ें
  • एक मॉड्यूल चुनें
  • एक विशिष्ट इंस्ट्रूमेंटेशन रनर जोड़ें:

  android.support.test.runner.AndroidJUnitRunner

नए बनाए गए कॉन्फ़िगरेशन को चलाएं।


6

मेरा मुद्दा भी ऐसा ही था। यह निश्चित नहीं है कि ऐसा क्यों हो रहा है, लेकिन मैं इसे एंड्रॉइड स्टूडियो में "फ़ाइल"> "अमान्य कैश / पुनः आरंभ" पर जाकर इसे ठीक करने में सक्षम था।


यह मेरे लिए तब तय हुआ जब मुझे अपने टेस्टक्लास के नाम को वापस लेने के बाद ओपी के समान त्रुटि मिली।
मार्को

4

मुझे नहीं पता कि यह एंड्रॉइड स्टूडियो के लिए मदद करता है, लेकिन मुझे किसी तरह का इंटेलीज-ग्रैगल संघर्ष था। परीक्षण-फ़ाइल पर "राइट-क्लिक" और "संकलित फ़ाइल ... Test.java" हिट करके इसे हल किया। उसके बाद मैं फिर से एकल परीक्षण चला सका।


2
* Test.java पर यह "संकलन फ़ाइल" कहां है? Android स्टूडियो का कौन सा संस्करण?
मार्क लापसा

जैसा कि मैंने ऊपर कहने की कोशिश की, मैं एंड्रॉइड स्टूडियो का उपयोग नहीं करता हूं। मैं Intellij 15 proffesional का उपयोग कर रहा हूं। राइट-क्लिक-ड्रॉपडाउन की छवि <- मैंने यहां एक छवि चिपकाई।
kotlinski

4

मेरे पास एंड्रॉइड स्टूडियो 2.3.1 पर एक ही मुद्दा था, यह बताता है कि यह एएस के साथ सिर्फ एक बग था। संस्करण 2.2.1 पर एक ही परीक्षण चलाने से अच्छा प्रदर्शन होता है।

यदि आप केवल कैनरी चैनल पर Android स्टूडियो चला रहे हैं, तो मैं आपको एक स्थिर संस्करण भी स्थापित करने की सलाह देता हूं। http://tools.android.com/tips/using-multiple-android-studio-versions


मेरे लिए समान, स्थिर 3.1.2 काम करता है, 3.2 कैनरी 15 नहीं करता है।
'11

3

मेरे पास परीक्षण थे जो तब तक ठीक चल रहे थे gradleऔर एंड्रॉइड स्टूडियो अपग्रेड हो गया।

अपने परीक्षणों में एक डिफ़ॉल्ट कंस्ट्रक्टर को जोड़ने के अलावा, आपको अपने टेस्ट सूट को काम करने के लिए इन चीजों में से कुछ करने की आवश्यकता हो सकती है

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. 'सूत्र' टैब
    ए। अपने स्रोत निर्देशिका (आमतौर पर src) पर क्लिक करें 'स्रोत' पर क्लिक करें।
    ख। अपने परीक्षण निर्देशिका पर राइट क्लिक करें 'टेस्ट'
    सी। अपनी निर्देशिका पर राइट-क्लिक करें 'बहिष्कृत' पर क्लिक करें
  4. 'पथ' टैब पर जाएँ
    a। 'उपयोग मॉड्यूल संकलित आउटपुट पथ' रेडियो बटन पर क्लिक करें
    b। 'आउटपुट पथ' के लिए अपनी आउटपुट पथ निर्देशिका का चयन करें
    । 'टेस्ट आउटपुट पाथ' के लिए अपने टेस्ट पथ निर्देशिका का चयन करें
  5. ओके पर क्लिक करें

3

जाहिर है, आपको अपने परीक्षणों को चलाने के लिए एक लक्ष्य डिवाइस की आवश्यकता होती है क्योंकि वे साधन परीक्षण होते हैं। कुछ कारणों से, एंड्रॉइड स्टूडियो कभी-कभी आपको इस लक्ष्य डिवाइस को इंगित करने के लिए नहीं कहता है और सिर्फ "खाली टेस्ट सूट" संदेश का संकेत देता है। इसे ठीक करने के अलग-अलग तरीके हैं, यहाँ कुछ हैं:

  • अपना मुख्य ऐप चलाएं और लक्ष्य डिवाइस चुनें या

  • रन (रन / रन ... / कॉन्फिगरेशन संपादित करें) कॉन्फिगरेशन पर जाएं और डिप्लॉयमेंट टारगेट ऑप्शंस को संशोधित करें


बस किसी को मदद करने के लिए अगर वे आपके समाधान की कोशिश करते हैं। मेरे मामले में मुझे पहले डिवाइस / एमुलेटर पर वास्तविक ऐप चलाना था और उसके बाद मेरे एंड्रॉइडटेस्ट को चलाने के लिए डिवाइस को देखने में सक्षम था। उसके बाद सब कुछ काम कर गया। जवाब के लिए प्लस एक दे।
a_P

2

मेरे मामले में, पिछले उत्तरों में से किसी ने भी काम नहीं किया। इसका समाधान केवल टेस्ट क्लास को दूसरे पैकेज में ले जाना था ।

इसके तहत हुआ androidTest/


2

मेरे मामले में मेरे कोड में गलती के कारण समस्या थी, वास्तव में वह आवेदन कक्षा में थी, इसलिए लक्ष्य गतिविधि नहीं खोली गई और आउटपुट प्रिंट का परीक्षण किया गया

खाली परीक्षण सूट त्रुटि

मैंने टर्मिनल से सीधे परीक्षण चलाने की कोशिश की है adb shell am instrument -w -r -e package your.package -e debug false android.support.test.runner.AndroidJUnitRunner। इसके साथ यह आपके लिए अपवाद के बारे में बहुत कुछ छापता है।


2

मुझे यह समस्या थी क्योंकि मेरे पास मेरे बिल्ड.ग्रेड में यह था:

testOptions {
    execution "ANDROID_TEST_ORCHESTRATOR"
}

भले ही मैं एंड्रॉइड टेस्ट ऑर्केस्ट्रेटर का उपयोग नहीं कर रहा था (गलती से ट्यूटोरियल से कॉपी किया गया होगा)।

यह कहते हुए कि यह मेरे लिए हल है।


1

अन्य किसी भी समाधान ने मेरे लिए काम नहीं किया, लेकिन मैं केवल मौजूदा ऐप या टेस्ट सूट की स्थापना रद्द करके, फिर परीक्षण चलाने के द्वारा यह काम पाने में सक्षम था।


इससे मुझे मदद मिली। मैंने परीक्षण चलाने से पहले डेटाबेस स्तर पर बदलाव किए, इसलिए साधन परीक्षण के तहत वर्ग काम नहीं कर सका। यह अजीब है कि एंड्रॉइड स्टूडियो ऐसे गैर-प्रासंगिक संदेश प्रदर्शित करता है।
पेट्रोक्लिफ

1

मेरे मामले में, जिस परियोजना पर मैं काम कर रहा था, उसमें कुछ मॉड्यूल थे। इस त्रुटि के लिए मुझे जो भी समाधान मिला, उनमें से किसी ने भी मेरी मदद नहीं की, और फिर किसी तरह मुझे एहसास हुआ कि अगर मैंने बिल्ड.ग्रेड फ़ाइलों के बीओटीएच में परीक्षण निर्भरता को जोड़ा, तो परीक्षण जादुई रूप से काम करना शुरू कर दिया। इससे कोई फर्क नहीं पड़ता कि आपके परीक्षण मॉड्यूल के केवल 1 में रहते हैं, दोनों ग्रेडल फ़ाइलों में निर्भरताएं और testInstrumentationRunner मान शामिल होना चाहिए।

इसलिए, यदि मेरी तरह, किसी भी अन्य उत्तर ने आपकी मदद नहीं की है, तो अपने प्रत्येक मॉड्यूल की बिल्ड.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

मेरे पास एक ही मुद्दा था, और इसका कारण था मेरी टेस्ट क्लास में क्लास के नाम के अंत में टेस्ट नहीं था!


1

मेरा मुद्दा @BeforeClassमेरे परीक्षण मामले की विधि में एक अपवाद के कारण था । यह कुछ कैसे परीक्षण को विफल करने का कारण नहीं बन रहा था - मैंने केवल इसे लॉगकैट आउटपुट का निरीक्षण करके पाया।

मैंने अपवाद तय किया और अचानक मेरे परीक्षण चल रहे थे!


मेरे लिए भी वैसा ही। ऐसा लगता है कि प्रायरक्लास में अपवाद को रन पैनल में ठीक से नहीं दिखाया गया है
डेविड रेफेली

1

आज समस्या का सामना करने के बाद - खाली सूट त्रुटि के साथ इंस्ट्रूमेंट किए गए एंड्रॉइड परीक्षणों को चलाने में सक्षम नहीं होने के कारण - मुझे इस समस्या के बारे में एक समस्या मिल गई और स्टेफ़न लिनज़नर के लिए धन्यवाद, मैं परीक्षण चला सकता था।

tl; dr आपको परीक्षण पैकेज बनाने के लिए टेस्ट पैकेज पर राइट क्लिक करना होगा और क्लास को नहीं।

संदर्भ: https://github.com/googlecodelabs/android-testing/issues/27#issuecomment-21907474863


0

इस लेख ने मेरी मदद की: खाली टेस्ट सूट

मूल रूप से मुझे अपने src डायरेक्टरी के तहत एक पैकेज - इंस्ट्रूमेंट / जावा - बनाना था , और वहां सारे टेस्ट करने थे। तब मैं इन परीक्षणों को व्यक्तिगत रूप से निष्पादित कर सकता था।


0

मेरे पास एक कच्चा जावा प्रोजेक्ट था जहां यह हो रहा था। बस जावा + JUnit4। यह निश्चित रूप से आपके .idea / या .iml फ़ाइलों में से कुछ के साथ रहता है। मैंने अपना परिमार्जन किया, फिर से आयात किया और आखिरकार परीक्षण फिर से चला।


0

परीक्षा वर्ग को संकलन से बाहर रखा जा सकता है। सेटिंग-कंपाइलर-बहिष्करण में इसे ठीक करें।


0

यहाँ मेरे डिबगिंग चरण हैं, जब मैं एंड्रॉइड स्टूडियो के माध्यम से अचानक चलने / डिबगिंग परीक्षणों को रोकने का फैसला करता हूं (और लड़का ऐसा अक्सर शर्मनाक तरीके से करता है !!)।

  • बिल्ड: → प्रोजेक्ट का पुनर्निर्माण
  • डिवाइस को पुनरारंभ करें: अपने डिवाइस / एमुलेटर को पुनरारंभ करें और फिर से प्रयास करें
  • डिवाइस स्विच: यदि आपके पास एक नियमित फोन और एक एमुलेटर दोनों हैं तो एक को अनप्लग करें और इसे केवल एक डिवाइस के साथ चलाने का प्रयास करें
  • Android Studio: फ़ाइल -> अमान्य कैश और पुनरारंभ करें
  • एक्टिविटी मॉनिटर / टास्क मैनेजर: नाम से प्रक्रियाओं को क्रमबद्ध करें, देखें कि क्या कोई ऐसी बेकार प्रक्रिया है जो बहुत सारे रैम का उपयोग कर रही है, यह एंड्रॉइड स्टूडियो की "भूत" प्रक्रिया है जिसे मार दिया जाना चाहिए
  • git रिवर्ट: अपने नवीनतम कोड को हिट / रिवर्ट करने का प्रयास करें। कभी-कभी एक जटिल त्रुटि होती है कि एंड्रॉइड स्टूडियो / ग्रेडल मिस हो जाता है और यह केवल एकतरफा कोड चलाने की कोशिश करेगा।
  • अनइंस्टॉल करें फिर एंड्रॉइड स्टूडियो को फिर से इंस्टॉल करें।

जब मैं उनमें चलाऊंगा तो मैं और सुधार जोड़ दूंगा!


0

मैंने कुछ नहीं किया और दर्द के आधे दिन के बाद समस्या दूर हो गई, मैंने कई बार परियोजनाओं को खोला और बंद कर दिया, प्रत्येक कक्षा के परीक्षणों को मैन्युअल रूप से चलाया, शायद यह मेरा तय किया था।


0

स्पोक फ्रेमवर्क के साथ एंड्रॉइड स्टूडियो में मैंने अपने ग्रेडेल के संस्करण को 2.2.2 से 3.2.1 तक बदल दिया है और सभी अच्छी तरह से चलते हैं।


0

स्वीकृत उत्तर से मेरी समस्या हल नहीं हुई। इसलिए मैंने कॉपी करने का फैसला किया ExampleInstrumentedTestजो एंड्रॉइड स्टूडियो में डिफ़ॉल्ट रूप से बनाया गया है और बिना किसी समस्या के चलता है, इसका नाम बदलकर कॉपी प्रक्रिया के दौरान बदला गया (कोई भी रिफ्लेक्टर-> कॉपी करने के बाद नाम बदलें!) और इसमें मेरी यूनिट टेस्ट की सामग्री को चिपकाया। इसके बाद वह त्रुटि गायब हो गई।


0

मैंने अपने एंड्रॉइड स्टूडियो 3.0 प्रोजेक्ट में स्थानीय इकाई परीक्षण चलाने की कोशिश करते समय "खाली टेस्ट सूट" त्रुटि का अनुभव किया।

एंड्रॉइड डेवलपर डॉक्यूमेंट को पढ़ने के बाद , मुझे जल्दी से पता चला कि यह समस्या मेरे ग्रेडल कॉन्फिगरेशन के कारण हुई थी जिसमें निम्नलिखित लाइनें शामिल थीं।

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

AndroidJUnitRunner वर्ग एक JUnit परीक्षण धावक है जो आपको Android उपकरणों पर JUnit 3- या JUnit 4-शैली परीक्षण कक्षाएं चलाने की सुविधा देता है

चूंकि मेरे परीक्षण स्थानीय थे और इसलिए किसी भी डिवाइस पर चलने की आवश्यकता नहीं थी, इसलिए उपरोक्त com.android.support.test को हटाकर ... प्रविष्टियों ने मुझे इकाई परीक्षणों को निष्पादित करने में सक्षम किया।


0

मैं @BeforeClass विधि में db में कुछ प्रविष्टि कर रहा था। मुझे एहसास हुआ कि मुझे कोई ऑब्जेक्ट / डेटाबेस मैपिंग समस्या थी। यह डेटा मैपिंग समस्या मेरे लिए इस समस्या का कारण थी।


0

मेरे मामले में, मेरे पास मेरे इंस्ट्रूमेंटेड टेस्ट थे androidTest/java/<package.name>/MyTestingClass, लेकिन मैंने अपना मौजूदा बिल्ड वेरिएंट "प्रीप्रोडक्शन" के लिए सेट कर दिया था। और वहाँ बात है! जैसा कि एंड्रॉइड स्टूडियो प्रलेखन में निर्दिष्ट है :

डिफ़ॉल्ट रूप से, सभी परीक्षण डीबग बिल्ड प्रकार के विरुद्ध चलते हैं।

संदेश Class not found. Empty test suite.तब तक दिखाई देता रहा जब तक मैंने ऐसा नहीं किया:

  1. इस लाइन को मेरे build.gradle में जोड़ें :

    android{
        [...]
        testBuildType "preproduction"
    }
  2. सिंक्रोनाइज़्ड ग्रेडल।
  3. मेरे पिछले परीक्षण कॉन्फ़िगरेशन को हटा दें क्योंकि वे इस ग्रेडल सिंक्रोनाइज़ेशन को ध्यान में नहीं रखते हैं।

तब मैंने फिर से परीक्षणों को अंजाम दिया और इस बार वे एकदम सही चल रहे हैं !!!


0

मेरे साथ ऐसा तब हुआ था जब मैंने गलती से एनोटेशन के साथ एक नॉन मॉक क्लास वैरिएबल को चिह्नित किया था, एनोटेशन को @Mock हटा दिया और परीक्षण सफलतापूर्वक चला। यह एंड्रॉइड स्टूडियो पर जूनिट 4.5 के साथ हुआ


0

समाधान नहीं बल्कि एक समाधान जो आपको जल्दी से वापस पटरी पर लाएगा:

  1. सबसे पहले, एक परीक्षण ढूंढें जो काम करता है। मैं एक नया परीक्षण लिख रहा था जहाँ मुझे 'खाली परीक्षण सूट' की त्रुटि मिली। मैंने अन्य परीक्षण किए और वे हमेशा की तरह काम कर रहे थे।

  2. परीक्षण फ़ाइल की प्रतिलिपि बनाएँ जो काम करता है। यह सुनिश्चित करने के लिए इसे चलाएं कि यह प्रतिलिपि मूल की तरह काम करती है।

  3. निकाय निकालें और इसे अपने नए परीक्षण कोड से बदलें।

परीक्षण अब काम करना चाहिए।

हमने कारण जानने के लिए लगभग दो घंटे बिताए लेकिन कोई फायदा नहीं हुआ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.