द्वारा लॉन्च नहीं हो रही है, मैं परीक्षण गतिविधि में एक टुकड़े का परीक्षण करना चाहता हूं। मैंने AndroidManifest.xml
फ़ाइल के साथ TestTragmentActivity
androidTest
जोड़ा। लेकिन यह निम्नलिखित त्रुटि देता है जब मैं एक ActivityTestRule
के माध्यम से इस गतिविधि का उपयोग करने का प्रयास करें:एंड्रॉइडटेस्ट में गतिविधि ActivityTestRule
java.lang.RuntimeException: Could not launch activity
at android.support.test.runner.MonitoringInstrumentation.startActivitySync(MonitoringInstrumentation.java:371)
at android.support.test.rule.ActivityTestRule.launchActivity(ActivityTestRule.java:219)
at com.bbm.ui.fragments.StickerPackListFragmentTest.testEmpty(StickerPackListFragmentTest.java:29)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at android.support.test.internal.statement.UiThreadStatement.evaluate(UiThreadStatement.java:55)
at android.support.test.rule.ActivityTestRule$ActivityStatement.evaluate(ActivityTestRule.java:270)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:27)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1887)
Caused by: java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.bbm.debug/com.bbm.TestFragmentActivity }
at android.app.Instrumentation.startActivitySync(Instrumentation.java:391)
at android.support.test.runner.MonitoringInstrumentation.access$201(MonitoringInstrumentation.java:90)
at android.support.test.runner.MonitoringInstrumentation$5.call(MonitoringInstrumentation.java:351)
at android.support.test.runner.MonitoringInstrumentation$5.call(MonitoringInstrumentation.java:348)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
TestFragmentActivity
सिर्फ एक खाली गतिविधि है। नीचे AndroidManifest.xml
androidTest
फ़ोल्डर में है।
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.bbm">
<application
android:label="@string/app_name"
tools:replace="android:label">
<activity android:name=".TestFragmentActivity"></activity>
</application>
</manifest>
मैंने यह क्यों हो रहा है के बारे में कुछ डेटा प्राप्त करने का प्रयास किया।
@RunWith(AndroidJUnit4.class)
public class TestFragment {
@Rule
public ActivityTestRule<TestFragmentActivity> rule =
new ActivityTestRule<>(TestFragmentActivity.class, false, false);
@Test
public void testEmpty() {
// Just for logging purpose
printActivities(InstrumentationRegistry.getTargetContext(), "APP_TARGET_CONTEXT");
printActivities(InstrumentationRegistry.getContext(), "APP_CONTEXT");
// The launch fails....
rule.launchActivity(null);
}
private void printActivities(Context context, String tag) {
try {
ActivityInfo[] infos = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_ACTIVITIES).activities;
for(ActivityInfo info : infos) {
Log.d(tag, info.name);
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Log.d(tag + "_PACKAGE_NAME", context.getPackageName());
}
}
ऊपर के उत्पादन में है: नीचे अपने परीक्षण है
10-06 18:46:45.419 13030-13052/com.example.achhatra.myapplication D/APP_TARGET_CONTEXT: com.example.achhatra.myapplication.MainActivity
10-06 18:46:45.419 13030-13052/com.example.achhatra.myapplication D/APP_TARGET_CONTEXT_PACKAGE_NAME: com.example.achhatra.myapplication
10-06 18:46:45.419 13030-13052/com.example.achhatra.myapplication D/APP_CONTEXT: com.example.achhatra.myapplication.TestFragmentActivity
10-06 18:46:45.419 13030-13052/com.example.achhatra.myapplication D/APP_CONTEXT_PACKAGE_NAME: com.example.achhatra.myapplication.test
आप देख सकते हैं TestFragmentActivity
androidTest
संदर्भ में और लक्ष्य संदर्भ में नहीं है। यही वजह है कि ActivityTestRule
इसे लॉन्च करने में सक्षम नहीं है।
मैं जानना चाहता हूं कि मैं इस परीक्षण में TestFragmentActivity
कैसे लॉन्च कर सकता हूं।
क्या आपको अपनी समस्या का समाधान मिला है? मेरा ठीक यही मुद्दा है। – Hollerweger
मैंने इस गतिविधि को स्वाद में जोड़ दिया। – Abdullah