অ্যান্ড্রয়েড টেস্ট রানার কেন "খালি পরীক্ষার স্যুট" প্রতিবেদন করছে?


98

আমি এখানে প্রাচীরের বিপরীতে মাথা ঠেকিয়ে যাচ্ছি যে কেন ইন্টেলিজ / অ্যান্ড্রয়েড "খালি পরীক্ষা স্যুট" প্রতিবেদন করছে figure আমার দুটি ছোট ইন্টেলিজিউ মডিউল (একটিগ্রহে "প্রকল্প") রয়েছে। ইউনিট পরীক্ষা মডিউলটির নিজস্ব AndroidManLive.xML রয়েছে, যা আমি নীচে পেস্ট করেছি। আমি একটি চালানোর চেষ্টা করছি ActivityUnitTestCase, যেহেতু পরীক্ষাগুলি Context-অবজেক্টের উপর নির্ভর করবে ।

মূল মডিউলটির প্যাকেজের নাম nilzor.myapp। পরীক্ষার মডিউলটির প্যাকেজ নামটি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. আমার কি "টেস্ট" দিয়ে পদ্ধতিটির উপসর্গ করা দরকার, বা এটি কেবল জুনট পরীক্ষার জন্য?
  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. না। আমার পরীক্ষাগুলি কোনও টিকা ছাড়াই চলমান, তবে আমি অনুমান করি যে এটিগুলি করা ভাল অনুশীলন। এটি আপনাকে চালনার জন্য পরীক্ষার আকার নির্দিষ্ট করার অনুমতি দেয়। দেখুন কি @SmallTest, @MediumTest এবং Android এ @LargeTest টীকা উদ্দেশ্য কি? আরও বিশদ জন্য।

  2. হ্যাঁ, আপনার "পরীক্ষা" উপসর্গ দরকার। ইন্টেলিজ "পরীক্ষা" উপসর্গ না থাকলে "কখনই পদ্ধতি ব্যবহার না করে" সতর্কতা দেয় এবং পরীক্ষা চলাকালীন সেই পদ্ধতিটি এড়িয়ে যায়।

  3. হ্যাঁ. আমি আমার পরীক্ষাগুলি উপ-প্যাকেজগুলিতে व्यवस्थित করেছি এবং মনে হচ্ছে এটি ভালভাবে কাজ করছে।


5
আপনি যদি অ্যাক্টিভিটিস্টেস্টরুল ব্যবহার করেন তবে এটি প্রয়োজনীয় নয়
ইয়ায়ার কুকিলকা

ডিফল্ট কনস্ট্রাক্টর যুক্ত করা আমার পক্ষে কাজটি করেছে।
ড্রাগন মারজানভিভিć

54

যদি এটি "হঠাৎ করেই ঘটে" বা "এটি 5 মিনিট আগে কাজ করছিল" তবে আমার সমাধানটি ছিল রান / ডিবাগ কনফিগারেশনগুলিতে যাওয়া এবং "অ্যান্ড্রয়েড টেস্ট" এর অধীনে যে কোনও কনফিগারেশন সরিয়ে ফেলা। কখনও কখনও এই কনফিগারেশনগুলি দূষিত হয়ে যায় যদি আমি পরীক্ষার অধীনে ক্লাসটি রিফেক্টর করি (উদাহরণস্বরূপ কোনও নতুন প্যাকেজে চলে এসে)।

এখানে চিত্র বর্ণনা লিখুন


এটি আমার পক্ষে কাজ করেছে। আমি খালি পরীক্ষার স্যুট ত্রুটি পাচ্ছিলাম। এটি হতে পারে কারণ প্রাথমিকভাবে কনফিগারেশন তৈরি হওয়ার পরে আমি পাওয়ারমকিতো যুক্ত করেছি।
আজিত মেমনা

আমার প্রায়শই এই এবং অন্যান্য সমস্যাগুলি পরীক্ষা চলতে থাকে যেখানে বিল্ড কনফিগারেশনগুলি ঠিক আগে কাজ করেছিল। আমি এই পদ্ধতির গ্রহণ করে সেগুলি ঠিক করতে সক্ষম হয়েছি।
স্টিভেহস 17

4
কনফিগারেশনগুলি মোছার পরে, আমি প্রকল্প এক্সপ্লোরার (অ্যান্ড্রয়েড ভিউ) এর একটি পরীক্ষা-প্যাকেজটিতে ডান ক্লিক করেছি এবং নির্বাচন করি Create 'Tests in XXX...- তারপরে এটি আবার কাজ করে
TmTron

9

উপরের কোনওটিই আমার জন্য এটি ঠিক করে নি। নির্দেশাবলী অনুসরণ করে যা সাহায্য করেছিল :

একটি পরীক্ষা কনফিগারেশন তৈরি করুন

অ্যান্ড্রয়েড স্টুডিওতে:

  • রান মেনু খুলুন -> কনফিগারেশন সম্পাদনা করুন
  • একটি নতুন অ্যান্ড্রয়েড টেস্ট কনফিগারেশন যুক্ত করুন
  • একটি মডিউল চয়ন করুন
  • একটি নির্দিষ্ট উপকরণ রানার যুক্ত করুন:

  android.support.test.runner.AndroidJUnitRunner

সদ্য নির্মিত কনফিগারেশন চালান।


6

আমারও একি দশা. কেন এটি হচ্ছে তা নিশ্চিত নয় তবে আমি অ্যান্ড্রয়েড স্টুডিওতে "ফাইল"> "অবৈধ ক্যাশে / পুনঃসূচনা" এ গিয়ে এটি ঠিক করতে সক্ষম হয়েছি।


আমার টেস্টক্লাসের নামটি রিফ্যাক্টর করার পরে যখন ওপি হিসাবে একই ত্রুটি পেয়েছি তখন এটি আমার জন্য স্থির হয়েছিল।
মার্কো

4

এটি অ্যান্ড্রয়েড স্টুডিওর জন্য সহায়তা করে কিনা আমি জানি না তবে আমার একরকম ইন্টেলিজ-গ্রেডল বিরোধ ছিল। এটি টেস্ট-ফাইলটিতে "ডান ক্লিক" করে সমাধান করুন এবং "সংকলন ফাইল ... টেস্ট.জভা" টিপুন। এর পরে আমি আবার একক পরীক্ষা চালাতে পারতাম।


4
* টেস্ট.জভাতে এই "সংকলন ফাইল" কোথায়? অ্যান্ড্রয়েড স্টুডিওর কোন সংস্করণ?
মার্ক লাপাসা

আমি উপরে বলার চেষ্টা করেছি, আমি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করি না। আমি ইন্টেলিজ 15 টি পেশাদার ব্যবহার করছি। রাইট-ক্লিক-ড্রপডাউন এর চিত্র <- আমি এখানে একটি চিত্র আটকালাম।
কোটলিনস্কি

4

অ্যান্ড্রয়েড স্টুডিও ২.৩.১ এ আমার একই সমস্যা ছিল, দেখা যাচ্ছে এটি AS এর সাথে কেবল একটি বাগ ছিল। ২.২.১ সংস্করণে একই পরীক্ষা চালানো দুর্দান্ত কাজ করে।

আপনি যদি কেবল ক্যানারি চ্যানেলে অ্যান্ড্রয়েড স্টুডিও চালাচ্ছেন তবে আমি আপনাকেও একটি স্থিতিশীল সংস্করণ ইনস্টল করার পরামর্শ দিচ্ছি। http://tools.android.com/tips/ using-m Multiple-android-studio-versions


আমার জন্য একই, স্থিতিশীল 3.1.2 কাজ করে, 3.2 ক্যানারি 15 করে না।
arekolek

3

gradleঅ্যান্ড্রয়েড স্টুডিওগুলি আপগ্রেড না হওয়া পর্যন্ত আমার পরীক্ষা চলছিল fine

আপনার পরীক্ষাগুলিতে একটি ডিফল্ট কনস্ট্রাক্টর যুক্ত করা ছাড়াও আপনার টেস্ট স্যুটটি কাজ করতে আপনাকে এই জিনিসগুলির কিছু করার প্রয়োজন হতে পারে

অধীনে 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

ইন্টেলিজ 15 এর জন্য আমি এই বিষয়টির দ্বারা সমাধান করেছি:

  1. 'প্রকল্প কাঠামো' সেটিংস খুলছে
  2. 'মডিউল' ক্লিক করা (বাম দিকে)
  3. 'উত্স' ট্যাব
    a। আপনার উত্স ডিরেক্টরিতে ডান ক্লিক করুন (সাধারণত এসসিআর) ক্লিক করুন 'উত্স'।
    খ। আপনার পরীক্ষা ডিরেক্টরিতে ডান ক্লিক করুন 'টেস্ট'
    সি। আপনার আউট ডিরেক্টরিতে ডান ক্লিক করুন 'বাদ'
  4. 'পাথস' ট্যাবে যান
    ক। 'মডিউল কম্পাইল আউটপুট পাথ ব্যবহার করুন' ক্লিক করুন রেডিও বোতাম
    খ। 'আউটপুট পাথ'
    সি এর জন্য আপনার আউটপুট পাথ ডিরেক্টরি নির্বাচন করুন । 'পরীক্ষার আউটপুট পাথ' এর জন্য আপনার পরীক্ষার পাথ ডিরেক্টরিটি নির্বাচন করুন
  5. ওকে ক্লিক করুন

3

স্পষ্টতই, আপনার পরীক্ষাগুলি চালিত করার জন্য আপনার টার্গেট ডিভাইস প্রয়োজন কারণ সেগুলি চালিত পরীক্ষা হয়। কিছু কারণে অ্যান্ড্রয়েড স্টুডিও মাঝে মাঝে আপনাকে এই টার্গেট ডিভাইসের দিকে নির্দেশ করতে এবং "খালি টেস্ট স্যুট" বার্তাটি প্রম্পট করার অনুরোধ করে না। এটি ঠিক করার বিভিন্ন উপায় রয়েছে, এখানে কয়েকটি দেওয়া হল:

  • আপনার প্রধান অ্যাপ্লিকেশন চালান এবং একটি লক্ষ্য ডিভাইস বা নির্বাচন করুন

  • রান (রান / রান ... / কনফিগারেশন সম্পাদনা) কনফিগারেশনে যান এবং ডিপ্লয়েমেন্ট টার্গেট অপশনগুলি সংশোধন করুন


কেউ যদি আপনার সমাধানটি চেষ্টা করে তবে তাদের সাহায্য করার জন্য। আমার ক্ষেত্রে আমাকে প্রথমে ডিভাইস / এমুলেটরটিতে প্রকৃত অ্যাপ্লিকেশন চালাতে হয়েছিল এবং তার পরে আমার অ্যান্ড্রয়েড টেস্ট পরীক্ষা চালানোর জন্য ডিভাইসটি দেখতে সক্ষম হয়েছিল। তারপরে সবকিছু কাজ করে। উত্তরের জন্য প্লাস ওয়ান দেওয়া হচ্ছে।
এএপি

2

আমার ক্ষেত্রে, আগের উত্তরগুলির কোনওটিরই কাজ হয়নি। সমাধানটি ছিল কেবল ক্লাসটিকে অন্য প্যাকেজে সরানো

এর আওতায় ঘটেছে androidTest/


2

আমার ক্ষেত্রে সমস্যাটি আমার কোডে ভুল হওয়ার কারণে হয়েছিল, আসলে এটি অ্যাপ্লিকেশন শ্রেণিতে ছিল, সুতরাং লক্ষ্যবস্তু কার্যকলাপ খোলা হয়নি এবং আউটপুট প্রিন্টগুলি পরীক্ষা করা হয়েছিল

খালি পরীক্ষার স্যুট ত্রুটি

আমি টার্মিনাল দিয়ে সরাসরি রান টেস্ট চেষ্টা করেছি adb shell am instrument -w -r -e package your.package -e debug false android.support.test.runner.AndroidJUnitRunner। এটি আপনার ব্যতিক্রম সম্পর্কে আরও অনেক ছাপে ints


2

আমার এই বিল্ডড্র্যাডলে আমার এই সমস্যাটি ছিল কারণ:

testOptions {
    execution "ANDROID_TEST_ORCHESTRATOR"
}

যদিও আমি অ্যান্ড্রয়েড টেস্ট অর্কেস্টেটর ব্যবহার করছিলাম না (টিউটোরিয়ালগুলি ভুল করে কপি করে ফেলতে হবে)।

আমার পক্ষে এটি সমাধান হয়েছে বলে মন্তব্য করা।


1

অন্য কোনও সমাধান আমার পক্ষে কাজ করেনি, তবে আমি বিদ্যমান অ্যাপ্লিকেশন বা পরীক্ষার স্যুইটটি আনইনস্টল করে, তারপরে পরীক্ষা চালিয়ে কেবল এই কাজটি করতে সক্ষম হয়েছি।


এটি আমাকে সাহায্য করেছিল। পরীক্ষা চালানোর আগে আমি ডাটাবেস স্তরে পরিবর্তন করেছি, সুতরাং চালিত পরীক্ষার অধীন শ্রেণিটি কাজ করতে পারে না। এটি অদ্ভুত যে অ্যান্ড্রয়েড স্টুডিও এমন একটি প্রাসঙ্গিক বার্তা প্রদর্শন করে।
পেট্রো ক্লিফ 4'17

1

আমার ক্ষেত্রে, আমি যে প্রকল্পে কাজ করছি তার বেশ কয়েকটি মডিউল ছিল। এই ত্রুটির জন্য আমি যে সমাধানগুলি পেয়েছি সেগুলির মধ্যে কোনওটিই আমাকে সহায়তা করেনি এবং তারপরে আমি কোনওভাবে বুঝতে পেরেছি যে আমি যদি বিল্ড.gradle ফাইলগুলির উভয়টিতে পরীক্ষার নির্ভরতা যুক্ত করি তবে পরীক্ষাগুলি যাদুতে কাজ শুরু করে। আপনার পরীক্ষাগুলি কেবলমাত্র মডিউলগুলির 1 টিতে বাস করে তা বিবেচনাধীন নয়, উভয় গ্রেড ফাইলের মধ্যে নির্ভরতা এবং পরীক্ষার অভ্যন্তরীণ রুনার মান অন্তর্ভুক্ত থাকতে হবে।

সুতরাং, যদি আমার মতো করে থাকে তবে অন্য উত্তরগুলির কোনওটিই আপনাকে সাহায্য করেনি, আপনার প্রতিটি মডিউলের বিল্ড.প্রডাল ফাইলটিতে এই লাইনগুলি যুক্ত করার চেষ্টা করুন:

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

আমার ইস্যুটি একটি ব্যতিক্রম thrown @BeforeClass আমার পরীক্ষার কেস পদ্ধতিতে । এটি কিছুতে কীভাবে পরীক্ষায় ব্যর্থ হওয়ার কারণ ঘটেনি - আমি কেবল লগক্যাট আউটপুট পরিদর্শন করে এটি পেয়েছি।

আমি ব্যতিক্রম স্থির করলাম এবং হঠাৎ আমার পরীক্ষাগুলি চলছিল!


আমার জন্যও একই. মনে হয় যে পূর্বেক্লাসে ব্যতিক্রমগুলি রান প্যানেলে যথাযথভাবে প্রদর্শিত হয়নি
ম্যাভারিক মেরক্যাট

1

আজ সমস্যার মুখোমুখি হওয়ার পরে - খালি স্যুট ত্রুটির সাথে চালিত অ্যান্ড্রয়েড পরীক্ষা চালাতে সক্ষম না হয়ে - আমি এই সমস্যাটি সম্পর্কে একটি গিট ইস্যু পেয়েছি এবং স্টিফান লিনজনারকে ধন্যবাদ, আমি পরীক্ষাগুলি চালাতে পারলাম।

tl; dr আপনাকে পরীক্ষা প্যাকেজটিতে ডানদিকে ক্লিক করতে হবে এবং পরীক্ষা চালানোর জন্য ক্লাসে নয়।

তথ্যসূত্র: https://github.com/googlecodelabs/android-testing/issues/27#issuecomment-219074863


0

এই নিবন্ধটি আমাকে সহায়তা করেছে: খালি পরীক্ষার স্যুট

মূলত আমাকে আমার এসসিআর ডিরেক্টরিতে একটি প্যাকেজ তৈরি করতে হয়েছিল - ইনস্ট্রুমেন্ট টেস্ট / জাভা - এবং সেখানে সমস্ত পরীক্ষা রাখা হয়েছিল। তারপরে আমি স্বতন্ত্রভাবে এই পরীক্ষাগুলি চালাতে পারতাম।


0

আমার একটি কাঁচা জাভা প্রকল্প ছিল যেখানে এটি ঘটছিল। কেবল জাভা + জুনিট 4। এটি অবশ্যই আপনার .idea / বা .iml ফাইলগুলির কিছুতে বাস করে। আমি আমার স্ক্র্যাপ করেছি, পুনরায় আমদানি করেছি এবং শেষ পর্যন্ত আবার পরীক্ষা চালিয়ে গেল।


0

পরীক্ষা ক্লাসটি সংকলন থেকে বাদ পড়তে পারে। সেট-সংকলক-বাদে এটি ঠিক করুন।


0

হঠাৎ করেই অ্যান্ড্রয়েড স্টুডিওগুলি হঠাৎ করে চালানো / ডিবাগিং পরীক্ষা বন্ধ করার সিদ্ধান্ত নেয় তখন আমার ডিবাগিং পদক্ষেপগুলি এখানে রয়েছে (এবং ছেলেরা প্রায়শই এটি বিব্রতকরভাবে ঘটে থাকে !!):

  • বিল্ড: project প্রকল্পটি পুনর্নির্মাণ
  • ডিভাইস পুনরায় চালু করুন: আপনার ডিভাইস / এমুলেটর পুনরায় চালু করুন এবং আবার চেষ্টা করুন
  • ডিভাইস স্যুইচ: আপনার যদি নিয়মিত ফোন এবং এমুলেটর উভয়ই একটি আনপ্লাগ হয় এবং কেবলমাত্র একটি ডিভাইস দিয়ে এটিকে চালানোর চেষ্টা করেন
  • অ্যান্ড্রয়েড স্টুডিও: ফাইল -> ক্যাশে বাতিল করে পুনরায় আরম্ভ করুন
  • ক্রিয়াকলাপ নিরীক্ষক / কার্য পরিচালক: নাম অনুসারে প্রক্রিয়াগুলি সাজান, দেখুন কোনও নামহীন প্রক্রিয়া রয়েছে যা প্রচুর পরিমাণে র‌্যাম ব্যবহার করছে, এটি অ্যান্ড্রয়েড স্টুডিওর একটি "ভূত" প্রক্রিয়া যা অবশ্যই হত্যা করা উচিত
  • গিট রিভার্ট: আপনার সর্বশেষ কোডটি স্ট্যাশিং / রিভার্ট করার চেষ্টা করুন। কখনও কখনও একটি সংকলন ত্রুটি থাকে যা অ্যান্ড্রয়েড স্টুডিও / গ্রেডেল মিস করে এবং এটি কেবল অমীমাংসিত কোড চালানোর চেষ্টা করবে।
  • আনইনস্টল করুন তারপরে অ্যান্ড্রয়েড স্টুডিও পুনরায় ইনস্টল করুন।

এগুলি চালানোর সাথে সাথে আমি আরও সংশোধন করব!


0

আমি কিছুই করিনি এবং সমস্যাটি অর্ধ দিন ব্যথার পরে চলে গেল, আমি প্রকল্পগুলি বহুবার খুলেছি এবং বন্ধ করে দিয়েছি, প্রতিটি ক্লাসের পরীক্ষা নিজেই চালিয়েছি, সম্ভবত এটি আমার স্থির করেছে।


0

স্পোক ফ্রেমওয়ার্ক সহ অ্যান্ড্রয়েড স্টুডিওতে আমি আমার গ্রেডের সংস্করণটি ২.২.২ থেকে ৩.২.১ এ পরিবর্তন করেছি এবং সব ঠিক আছে।


0

গৃহীত উত্তর আমার সমস্যার সমাধান করেনি। সুতরাং আমি অনুলিপি করেছিলাম ExampleInstrumentedTestযা অ্যান্ড্রয়েড স্টুডিওতে ডিফল্টরূপে তৈরি করা হয় এবং কোনও সমস্যা ছাড়াই চলে, অনুলিপি প্রক্রিয়া চলাকালীন এটির নামকরণ (কোনও প্রতিলিপি-> অনুলিপি করার পরে পুনরায় নামকরণ করা হয়নি!) এবং এতে আমার ইউনিট পরীক্ষার বিষয়বস্তু আটকানো হয়েছে। এর পরে ত্রুটিটি অদৃশ্য হয়ে গেল।


0

আমার অ্যান্ড্রয়েড স্টুডিও 3.0 প্রকল্পে লোকাল ইউনিট পরীক্ষা চালানোর চেষ্টা করার সময় আমি "খালি পরীক্ষা স্যুট" ত্রুটিটি অনুভব করেছি।

অ্যান্ড্রয়েড বিকাশকারী ডকুমেন্টেশন পড়ার পরে , আমি দ্রুত বুঝতে পারি যে সমস্যাটি আমার গ্রেড কনফিগারেশনের কারণে হয়েছিল যা নিম্নলিখিত লাইনগুলি অন্তর্ভুক্ত করে।

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

AndroidJUnitRunner ক্লাসটি এমন একটি JUnit পরীক্ষা রানার যা আপনাকে অ্যান্ড্রয়েড ডিভাইসে JUnit 3- বা JUnit 4-স্টাইলের পরীক্ষা ক্লাস চালাতে দেয়

যেহেতু আমার পরীক্ষাগুলি স্থানীয় ছিল এবং তাই কোনও ডিভাইসে চালিত হওয়ার দরকার নেই, উপরের com.android.support.test সরানো ... এন্ট্রি আমাকে ইউনিট পরীক্ষাগুলি সম্পাদন করতে সক্ষম করে।


0

আমি @ বিফোরক্লাস পদ্ধতিতে একটি ডিবিতে কিছু সন্নিবেশ করছিলাম। আমি বুঝতে পারি আমার একটি অবজেক্ট / ডাটাবেস ম্যাপিংয়ের সমস্যা আছে। এই ডেটা ম্যাপিংয়ের সমস্যাটি আমার জন্য এই সমস্যার কারণ ছিল।


0

আমার ক্ষেত্রে, আমার চালিত পরীক্ষাগুলি ছিল androidTest/java/<package.name>/MyTestingClass, তবে আমি আমার বর্তমান বিল্ড বৈকল্পিকটিকে "প্রিপ্রোডাকশন" তে সেট করেছিলাম। এবং বিন্দু আছে! অ্যান্ড্রয়েড স্টুডিও ডকুমেন্টেশনে যেমন উল্লেখ করা হয়েছে :

ডিফল্টরূপে, সমস্ত পরীক্ষাগুলি ডিবাগ বিল্ড প্রকারের বিরুদ্ধে চলে।

Class not found. Empty test suite.আমি এটি না করা পর্যন্ত বার্তাটি প্রদর্শিত হতে থাকবে:

  1. আমার বিল্ড.gradle এ এই লাইন যুক্ত করুন :

    android{
        [...]
        testBuildType "preproduction"
    }
    
  2. সিঙ্ক্রোনাইজ গ্রেড
  3. আমার পূর্ববর্তী পরীক্ষার কনফিগারেশনগুলি মুছুন কারণ তারা এই গ্রেডল সিঙ্ক্রোনাইজেশনটিকে অ্যাকাউন্টে নেয় না।

তারপরে আমি আবার পরীক্ষাগুলি সম্পাদন করেছিলাম এবং এবার তারা ঠিক নিখুঁতভাবে চালায় !!!


0

আমার সাথে এটি ঘটেছিল যখন আমি ভুল করে টিকাটি @Mock মুছে ফেলার সাথে একটি নন মক ক্লাস ভেরিয়েবল চিহ্নিত করলাম এবং টীকাগুলি সফলভাবে চলল। অ্যান্ড্রয়েড স্টুডিওতে জুনিট 4.5 এর সাথে এটি ঘটেছিল


0

কোনও সমাধান নয় বরং এমন একটি কর্মপরিকল্পনা যা আপনাকে দ্রুত ট্র্যাকে ফিরিয়ে আনবে:

  1. প্রথমত, কাজ করে এমন একটি পরীক্ষা সন্ধান করুন। আমি একটি নতুন পরীক্ষা লিখছিলাম যেখানে আমি 'খালি পরীক্ষার স্যুট' ত্রুটি পেয়েছি। আমি অন্যান্য পরীক্ষা চালিয়েছিলাম এবং তারা যথারীতি কাজ করে যাচ্ছিল।

  2. কাজ করে এমন টেস্ট ফাইলটি অনুলিপি করুন। এই অনুলিপিটি মূলটির মতো কাজ করে তা নিশ্চিত করার জন্য এটি চালান।

  3. দেহটি সরান এবং এটি আপনার নতুন পরীক্ষার কোডের সাথে প্রতিস্থাপন করুন।

পরীক্ষা এখন কাজ করা উচিত।

আমরা কারণটি খুঁজতে চেষ্টা করে প্রায় দুই ঘন্টা ব্যয় করেছি কিন্তু কোন ফলসই হয়নি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.