转载自:http://blog.sina.com.cn/s/blog_628cc2b70102vag1.html
使用AndroidTestRunner记得在AndroidManifest.xml中添加如下配置:
<uses-library android:name="android.test.runner" />
1、MyActivity.java
public class MyActivity extends Activity {
private static final String TAG = "JUnit";
private Thread mRunner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
((Button)this.findViewById(R.id.start_junit)).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
startJUnit();
}
}
);
}
protected void startJUnit(){
if(mRunner == null){
Log.d(TAG, "startJUnit");
mRunner = new Thread(new JUnitRunner(this));
mRunner.start();
}
}
}
2、JUnitRunner.java
public class JUnitRunner implements Runnable, TestListener{
private static final String TAG = "JUnit";
private Activity mActivity;
private int mCount;
private int mErrorCount;
private int mFailureCount;
public JUnitRunner(Activity activity){
mActivity = activity;
}
@Override
public void run() {
Log.d(TAG, "JUnitRunner run");
mCount = 0;
mErrorCount = 0;
mFailureCount = 0;
AndroidTestRunner androidTestRunner = new AndroidTestRunner();
androidTestRunner.setContext(mActivity);
androidTestRunner.addTestListener(this);
androidTestRunner.setTest(new AllSuite());
androidTestRunner.runTest();
Log.d(TAG, "run my androidTestRunner");
}
@Override
public void addError(Test test, Throwable throwable) {
++mErrorCount;
Log.d(TAG, "addError className:" + test.getClass().getName());
Log.d(TAG, throwable.getMessage(), throwable);
Log.d(TAG, "mErrorCount:" + mErrorCount);
}
@Override
public void addFailure(Test test, AssertionFailedError assertionFailedError) {
++mFailureCount;
Log.d(TAG, "addFailure className:" + test.getClass().getName());
Log.d(TAG, assertionFailedError.getMessage(), assertionFailedError);
Log.d(TAG, "mFailureCount:" + mFailureCount);
}
@Override
public void endTest(Test test) {
Log.d(TAG, "endTest className:" + test.getClass().getName());
Log.d(TAG, "mCount:" + mCount + " mErrorCount:" + mErrorCount + " mFailureCount:" + mFailureCount);
}
@Override
public void startTest(Test test) {
Log.d(TAG, "startTest className:" + test.getClass().getName());
++mCount;
}
}
3、AllSuite.java
public class AllSuite extends TestSuite{
public AllSuite(){
addTestSuite(MyTest.class);
}
}
4、MyTest.java
public class MyTest extends TestCase{
private static final String TAG = "JUnit";
public void testAdd(){
Log.d(TAG, "MyTest testAdd");
String RealStr = "1";
assertEquals("2", RealStr);
}
}
使用AndroidTestRunner记得在AndroidManifest.xml中添加如下配置:
<uses-library android:name="android.test.runner" />
1、MyActivity.java
public class MyActivity extends Activity {
private static final String TAG = "JUnit";
private Thread mRunner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
((Button)this.findViewById(R.id.start_junit)).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
startJUnit();
}
}
);
}
protected void startJUnit(){
if(mRunner == null){
Log.d(TAG, "startJUnit");
mRunner = new Thread(new JUnitRunner(this));
mRunner.start();
}
}
}
2、JUnitRunner.java
public class JUnitRunner implements Runnable, TestListener{
private static final String TAG = "JUnit";
private Activity mActivity;
private int mCount;
private int mErrorCount;
private int mFailureCount;
public JUnitRunner(Activity activity){
mActivity = activity;
}
@Override
public void run() {
Log.d(TAG, "JUnitRunner run");
mCount = 0;
mErrorCount = 0;
mFailureCount = 0;
AndroidTestRunner androidTestRunner = new AndroidTestRunner();
androidTestRunner.setContext(mActivity);
androidTestRunner.addTestListener(this);
androidTestRunner.setTest(new AllSuite());
androidTestRunner.runTest();
Log.d(TAG, "run my androidTestRunner");
}
@Override
public void addError(Test test, Throwable throwable) {
++mErrorCount;
Log.d(TAG, "addError className:" + test.getClass().getName());
Log.d(TAG, throwable.getMessage(), throwable);
Log.d(TAG, "mErrorCount:" + mErrorCount);
}
@Override
public void addFailure(Test test, AssertionFailedError assertionFailedError) {
++mFailureCount;
Log.d(TAG, "addFailure className:" + test.getClass().getName());
Log.d(TAG, assertionFailedError.getMessage(), assertionFailedError);
Log.d(TAG, "mFailureCount:" + mFailureCount);
}
@Override
public void endTest(Test test) {
Log.d(TAG, "endTest className:" + test.getClass().getName());
Log.d(TAG, "mCount:" + mCount + " mErrorCount:" + mErrorCount + " mFailureCount:" + mFailureCount);
}
@Override
public void startTest(Test test) {
Log.d(TAG, "startTest className:" + test.getClass().getName());
++mCount;
}
}
3、AllSuite.java
public class AllSuite extends TestSuite{
public AllSuite(){
addTestSuite(MyTest.class);
}
}
4、MyTest.java
public class MyTest extends TestCase{
private static final String TAG = "JUnit";
public void testAdd(){
Log.d(TAG, "MyTest testAdd");
String RealStr = "1";
assertEquals("2", RealStr);
}
}