मैं कमांड लाइन या ग्रहण का उपयोग कर अपने एंड्रॉइड जूनिट परीक्षण चला रहा हूं, भले ही मैं देव मोड में या डिवाइस परीक्षण में हूं।एंड्रॉइड जूनिट टेस्ट (पैरामीटरेटेड टेस्ट) के लिए तर्क कैसे पारित करें
एक जावा आवेदन एक मुख्य (String [] args) विधि है और यह यह करने के लिए एक तर्क पारित करने के लिए आसान है (या तो रन विन्यास अनुभाग, या कमांड लाइन से में तर्क टैब में ग्रहण के साथ)
एंड्रॉइड जूनिट टेस्ट के लिए यह अलग है, कोई मुख्य विधि नहीं है और कहीं भी मैं कुछ तर्क निर्धारित नहीं कर सकता हूं।
मैंने यहां पढ़ा है और एक गुण फ़ाइल का उपयोग करने के लिए एक समाधान होगा। क्या यह एकमात्र तरीका है? यदि आप एक त्वरित और आसान उदाहरण देते हैं, तो इसकी बहुत सराहना की जाएगी।
धन्यवाद
>>> Edit <<<
मैं Robotium उपयोग कर रहा हूँ, और JUnit फैली ActivityInstrumentationTestCase2 बहुत ही बुनियादी JUnit परीक्षण नीचे देखें:
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import com.jayway.android.robotium.solo.Solo;
public class Test_arg extends ActivityInstrumentationTestCase2 {
private static final String TARGET_PACKAGE_ID = "com.myapp.test";
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.myapp";
private static Class launcherActivityClass;
private Solo solo;
static {
try {
launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public Test_arg() throws ClassNotFoundException {
super(TARGET_PACKAGE_ID, launcherActivityClass);
}
@Override
protected void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
@Override
public void tearDown() throws Exception {
try {
solo.finishOpenedActivities();
solo.finalize();
} catch (Throwable e) {
e.printStackTrace();
}
super.tearDown();
}
public void test_01() throws InterruptedException {
Log.i("TEST", "test");
}
}
और एंड्रॉयड प्रकट
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="5" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.slacker.radio" android:functionalTest="true"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
: http://stackoverflow.com/questions/683764/passing-junit-command-line-parameters-in-eclipse http://stackoverflow.com/ प्रश्न/2884163/पास-कमांड-लाइन-तर्क-टू-जुनीट-टेस्ट-केस-रन-रन-प्रोग्रामेटिक –
कमांड लाइन से परीक्षणों के लिए तर्क पारित करना अच्छा नहीं है। आप क्या पास करना चाहते हैं? आप विभिन्न परीक्षण सूट क्यों नहीं बनाते हैं या परीक्षणों के अंदर तर्क बनाते हैं। – Leonidos
रे, जैसा कि मेरे प्रश्न में उल्लेख किया गया है, मैं सिस्टम गुणों के तरीके से अवगत हूं, मैं सिर्फ एक स्ट्राइटर तरीका (जैसे कमांड तर्क) देख रहा हूं।_ लियोनिडोस। मैं समझता हूं कि यूनिट परीक्षणों के लिए तर्क पारित करने का यह सबसे अच्छा अभ्यास नहीं है। मेरे मामले में, कुछ बदलाव सर्वर पक्ष बनाते हैं, जहां वे चीजों को चालू और बंद करते हैं। मेरे परीक्षण कमांड लाइन द्वारा स्वचालित रूप से चलाए जाते हैं, इसलिए जब सर्वर की सामग्री बदलती है तो परीक्षणों को फिर से संकलित नहीं करना पड़ता है – Franck