![](/img/trans.png)
[英]Is it possible to run Android Espresso unit tests in @BeforeClass annotated methods?
[英]Unable to run espresso tests for android
我有一些问题为Android设置/运行espresso测试。 我的TestClass如下所示: -
import static com.google.android.apps.common.testing.ui.espresso.Espresso.onView;
import static com.google.android.apps.common.testing.ui.espresso.action.ViewActions.click;
import static com.google.android.apps.common.testing.ui.espresso.assertion.ViewAssertions.matches;
import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withId;
import static com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers.withText;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import com.sample.rasmus.MainActivity;
public class BasicTest extends ActivityInstrumentationTestCase2<MainActivity> {
public BasicTest(String name) {
super(MainActivity.class);
Log.v("amtesting","2");
}
@Override
public void setUp() throws Exception {
Log.v("amtesting","5");
super.setUp();
Log.v("amtesting","4");
// Espresso will not launch our activity for us, we must launch it via getActivity().
getActivity();
}
public void testSimpleClickAndCheckText(){
Log.v("amtesting","1");
onView(withId(com.sample.rasmus.R.id.thebutton)).perform(click());
onView(withId(com.sample.rasmus.R.id.helloworld)).check(matches(withText("awesome")));
}
protected void tearDown() throws Exception {
Log.v("amtesting","3");
super.tearDown();
}
}
AndroidManifest.xml看起来像这样: -
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sample.rasmus.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="14" />
<instrumentation
android:name="com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
android:targetPackage="com.sample.rasmus" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
并且运行配置已更新为使用Google In GoogleInstrumentationTestRunner
作为InstrumentationRunner。
但是,当我运行测试时,它在控制台上给出了以下内容: -
没有提及运行测试,测试也没有运行。 我在这里可以缺少什么?
好的,这就是我最终解决它的方式。 我将测试类的构造函数更改为:
public BasicTest() {
super(MainActivity.class);
}
它开始工作了。 有点奇怪,这就是让我整天忙碌的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.