1、创建一个android 工程welcomeworld
目录结构如图:
MainActivity代码如下:
public class MainActivity extends AppCompatActivity {
//ß @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button changeButton = (Button) findViewById(com.example.mifeng.welcomeworld.R.id.change_btn);
changeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// R.id.chang
Toast.makeText(MainActivity.this, "you click the changeButton", Toast.LENGTH_SHORT).show();
int name = R.string.app_name;
String APPName = getString(R.string.app_name);
String greet = getString(R.string.mifeng);
//Log.v(APPName);
Log.v(greet, "hahs");
}
});
}
布局xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/change_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.26"
android:text="Button" />
</LinearLayout>
如图创建learning这个目录,并在该目录下创建Java测试文件 InstrumentationTest.java
内容为:
package com.example.mifeng.welcomeworld.learning;
import android.app.Activity;
import android.app.Instrumentation;
import android.test.ActivityInstrumentationTestCase2;
import com.example.mifeng.welcomeworld.MainActivity;
import com.example.mifeng.welcomeworld.R;
import com.robotium.solo.Solo;
//import com.robotium.solo.Solo;
/**
* Created by mifeng on 2017/6/22.
*/
public class InstrumentationTest extends ActivityInstrumentationTestCase2<MainActivity> {
public Instrumentation ins;
public Solo solo;
public InstrumentationTest(){
super(MainActivity.class);
}
public void setUp()throws Exception{
super.setUp();
ins = getInstrumentation();
getActivity();
}
public void tearDown()throws Exception{
super.tearDown();
}
public void test1(){
solo = new Solo(ins, getActivity());
System.out.println(ins);
Activity activity = solo.getCurrentActivity();
if(activity!=null){
int id = activity.findViewById(R.id.change_btn).getId();
// solo.clickOnButton(id);
solo.clickOnView(activity.findViewById(R.id.change_btn));
solo.sleep(10000);
}
}
}
按下图修改Manifest文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mifeng.welcomeworld">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.mifeng.welcomeworld.learning"></instrumentation>
</manifest>
注意:若在上面的文件中的标签...中出现can not resolve “com.example.mifeng.welcomeworld.learning” 可以忽略
build.gradle(app那个,别选错了)修改成如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "com.example.mifeng.welcomeworld"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
// testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.6.0'
//androidTestCompile 'com.android.support.test:rules:0.4.1'
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
// androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.6.0'
// androidTestCompile 'com.android.support.test:rules:0.4.1'
// androidTestCompile 'junit:junit:4.12'
}
注意:gradle文件中需要注释掉代码
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
经过上面步骤,就可以运行起来验收效果了!
也可以使用工程提供的AndroidJunitRunner,这样的话就不需要注释掉
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
对应的修改Manifest文件内容
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mifeng.welcomeworld">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
//<instrumentation
// android:name="android.test.InstrumentationTestRunner"
// //android:targetPackage="com.example.mifeng.welcomeworld.learning">
//</instrumentation>
</manifest>
Reference:
待补充