Android JUnit test does not show test bars (Eclipse)
I'm new in Android dev apps and trying to use JUnit test framework to test the code below, with ActivityInstrumentationTestCase2 class, with lectures on TestingFundamentals in Android Docs. But when Test runs, I'm not getting any info about the tests (the red, green, blue bars in JUnit interface in Eclipse) (in fact, I believe that the tests are not occurring, even with the console saying yes).
Here are the JUnit code and Manifest Files:
package gml.android.mixdroid.test;
import java.util.ArrayList;
import gml.android.mixdroid.SeekbarActivity;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.SeekBar;
import android.widget.TextView;
public class SeekBarActivityTest extends ActivityInstrumentationTestCase2<SeekbarActivity> {
private SeekbarActivity mActivity;
private ArrayList<SeekBar> mSeekBars;
private ArrayList<TextView> mProgress;
private ArrayList<TextView> mTracks;
public SeekBarActivityTest(String pkg, Class<SeekbarActivity> activityClass) {
super("gml.android.mixdroid", SeekbarActivity.class);
}
public void setUp() throws Exception{
super.setUp();
mActivity = getActivity();
mSeekBars = mActivity.getSeekBars();
mProgress = mActivity.getProgressTextViews();
mTracks = mActivity.getTrackingTextViews();
}
public void testPreconditions(){
assertNotNull(mSeekBars);
assertNotNull(mProgress);
assertNotNull(mTracks);
for(SeekBar s : mSeekBars){
assertNotNull(s);
}
for(TextView p : mProgress){
assertNotNull(p);
}
for(TextView t : mTracks){
assertNotNull(t);
}
}
public void testInitSeekBars() {
assertEquals(SeekbarActivity.NUMBER_OF_SEEK_BARS, mSeekBars.size());
}
public void testInitTextViews() {
assertEquals(SeekbarActivity.NUMBER_OF_SEEK_BARS, mTracks.size());
assertEquals(SeekbarActivity.NUMBER_OF_SEEK_BARS, mProgress.size());
}
}
Manifest (Activity):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="gml.android.mixdroid"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".SeekbarActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="7" />
</manifest>
Manifest( JUnit):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
package="gml.android.mixdroid.test">
<application
android:icon="开发者_如何学运维@drawable/icon"
android:label="@string/app_name">
<uses-library android:name="android.test.runner" />
</application>
<uses-sdk android:minSdkVersion="7" />
<instrumentation
android:targetPackage="gml.android.mixdroid.test"
android:name="android.test.InstrumentationTestRunner"
android:label="Tests for MixDroid App"/>
<activity
android:name="gml.android.SeekbarActivity"/>
</manifest>
In Logcat I receive this:
[2011-04-03 03:51:48 - SeekbarTest] Project dependency found, installing: SeekbarActivity
[2011-04-03 03:51:50 - SeekbarActivity] Application already deployed. No need to reinstall.
[2011-04-03 03:51:50 - SeekbarTest] Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5554
[2011-04-03 03:51:53 - SeekbarTest] Collecting test information
[2011-04-03 03:51:57 - SeekbarTest] Test run failed: Test run incomplete. Expected 1 tests, received 0
and JUnit View, no info test
Use this constructor:
public SeekBarActivityTest() {
super("gml.android.mixdroid", SeekbarActivity.class);
}
- In Eclipse, right click on your Test project and Run As -> Android JUnit Test
- Check logcat in DDMS, you will see some output
- If everything went well, you'll see the tests results in JUnit View
精彩评论