Я новичок в приложениях для разработчиков Android и пытаюсь использовать тестовую среду JUnit для тестирования приведенного ниже кода с классом ActivityInstrumentationTestCase2, с лекциями по TestingFundamentals в Android Docs.Но когда запускается Test, я не получаю никакой информации о тестах (красные, зеленые, синие столбцы в интерфейсе JUnit в Eclipse) (на самом деле я считаю, что тесты не выполняются, даже если консоль говорит «да»).
Вот код JUnit и файлы манифеста:
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());
}
}
Манифест (Активность):
<?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>
Манифест (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>
В Logcat я получаю это:
[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
и JUnit View, без проверки информации