我刚开始使用机器人.演示可以毫无问题地运行,但是当我使用EditText和编写第一个测试脚本时Button,会出现问题.我的环境是android 2.1,脚本很简单,只需输入用户名和psw,然后点击sumbit按钮登录.
脚本如下:
package com.tpc.test;
import com.tpc.login.Login;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.Smoke;
public class LoginTest extends ActivityInstrumentationTestCase2<Login>{
private Solo solo;
public LoginTest() {
super("com.tpc", Login.class);
}
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
@Smoke
public void testApp() throws Exception {
String appName = solo.getCurrentActivity().getClass().getSimpleName();
System.out.println(appName);
solo.getButton(0).getClass().getSimpleName();
solo.assertCurrentActivity("Expected login activity", appName);
System.out.println(solo.getButton(0).getText());//can get the text of button
solo.enterText(0, "name"); //input name to the 1st EditText is OK
solo.enterText(1, "psw"); // Actually …Run Code Online (Sandbox Code Playgroud) 我有一个测试类,但总能得到NullPointerException的tearDown(),任何人都知道这是为什么?
public class LaunchManagerActivityTest extends ActivityInstrumentationTestCase2<LaunchManagerActivity> {
private Solo solo;
public LaunchManagerActivityTest() {
super(LaunchManagerActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
solo = new Solo(getInstrumentation(), getActivity());
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
solo.finishOpenedActivities();
}
public void testOne() {
}
public void testTwo() {
}
Run Code Online (Sandbox Code Playgroud) 我试图使用谷歌nexus 4打开网络应用程序的层次结构查看器.但它没有奏效.然后,我正在搜索有关此问题的一些表单和网站,但有根据设备的方式告诉如果root设备可能无效保修.有没有办法打开层次结构.我看到一个关于层次结构的网站,但提到保修无效,我们可以撤销保修.在这里我的担忧是正确的吗?我们可以取消保修吗?
我在我的项目中使用口味,并且我想添加特定于每种口味的仪器测试。
所以我创建了
MyApplication/src/androidTestFlavor1/java/com.package.test
MyApplication/src/androidTestFlavor2/java/com.package.test
Run Code Online (Sandbox Code Playgroud)
但它无法正常工作。
所以,我尝试在 build.gradle 中配置它,我添加了
android {
...
sourceSets {
flavor1{
instrumentTest.setRoot('src/instrumentationTestFlavor/java')
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
错误:(59, 0) 在源集 ding 上找不到属性“instrumentTest”。
这里最好的解决方案是什么?
Circle Ci Android Test模拟器脚本始终失败
项目中使用的circle.yml文件.
#
#Build configuration for Circle CI
#
general:
artifacts:
- /home/ubuntu/TestApp/app/build/outputs/apk/
machine:
environment:
ANDROID_HOME: /usr/local/android-sdk-linux
dependencies:
override:
- echo y | android update sdk --no-ui --all --filter tools,platform-tools,build-tools-21.1.2,android-21,extra-google-m2repository,extra-google-google_play_services,extra-android-support
- ANDROID_HOME=/usr/local/android-sdk-linux ./gradlew dependencies
test:
override:
- (./gradlew assemble):
timeout: 360
test:
override:
# start the emulator
- emulator -avd circleci-android21 -no-audio -no-window:
background: true
parallel: true
# wait for it to have booted
- circle-android wait-for-boot
# run tests against the emulator.
- ./gradlew …Run Code Online (Sandbox Code Playgroud) 我创建了测试项目...我在(运行时配置类路径 - >用户条目 - > junit.jar中更新了junit.jar
当我运行代码时,我正在低于错误...
java.lang.NoClassDefFoundError: android/test/ActivityInstrumentationTestCase2
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.ClassNotFoundException: android.test.ActivityInstrumentationTestCase2
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... …Run Code Online (Sandbox Code Playgroud) 我在旋转器中向上滚动以选择Robotium测试用例中的第一项时遇到问题.这是我的代码:
int pos = solo.getCurrentSpinners().get(0).getSelectedItemPosition();
solo.pressSpinnerItem(0, 0 - pos);
Run Code Online (Sandbox Code Playgroud)
当我调试时pos是1,但Robotium仍然在索引1上按下微调器,即使我命令它按-1.我究竟做错了什么?
谢谢马库斯
我有标签布局.这只有图标而不是text.I尝试使用clickOnImageButton和ClickOnButton clickOnImage并按下OnMenuItem(R.drwable.icon)但没有工作.我怎么能用独奏?注意:图像视图位于选项卡顶部.(选项卡位于底部)
跑步Robotium很慢.
adb shell monkey ...
Run Code Online (Sandbox Code Playgroud)
运行速度非常快,GUI只是在屏幕上闪烁.因为我是新手,Robotium我想知道这是否正常?
我正在从机器人切换到浓缩咖啡,我正在使用apk编写测试,我无法访问代码.在使用solo.getView("view-id")的robotium中,我们可以访问视图,但我不知道如何在浓缩咖啡中进行操作?espresso witId()方法需要R.id.viewid,我无权访问.
public class AaEspressoTest {
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.tri.re.CordActivity";
private static Class<?> launcherActivityClass;
static {
try {
launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
@Rule
public ActivityTestRule<?> mActivityRule = new ActivityTestRule(launcherActivityClass);
@Test public void testHello() throws Exception{
onView(withText("Browse older recordings")).perform(click());
//Id is not accessible shows red
onView(withId(R.id.button)).perform(click());
}
}
Run Code Online (Sandbox Code Playgroud)