我使用命令行或eclipse运行我的android junit测试,具体取决于我是在开发模式还是在设备测试中.
java应用程序有一个Main(String [] args)方法,很容易将参数传递给它(在运行配置部分的Arguments选项卡中使用eclipse,或者通过命令行)
对于一个android junit测试它是不同的,没有Main方法,我无处可设置一些参数.
我已经在这里阅读了一个解决方案是使用属性文件.这是唯一的方法吗?如果你有一个快速简单的例子,我将非常感激.
谢谢
>>> Edit <<<
Run Code Online (Sandbox Code Playgroud)
我正在使用Robotium,junit扩展了ActivityInstrumentationTestCase2参见下面的非常基本的junit测试:
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import com.jayway.android.robotium.solo.Solo;
public class Test_arg extends ActivityInstrumentationTestCase2 {
private static final String TARGET_PACKAGE_ID = "com.myapp.test";
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.myapp";
private static Class launcherActivityClass;
private Solo solo;
static {
try {
launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public Test_arg() throws ClassNotFoundException {
super(TARGET_PACKAGE_ID, launcherActivityClass);
}
@Override
protected void setUp() throws Exception {
solo = …Run Code Online (Sandbox Code Playgroud) ctrl + shift + F适用于公共类中的内容.但格式在方法内部不起作用,请参见=符号未对齐.为什么?以及如何让它工作?
public class myClass extends ActivityInstrumentationTestCase2 {
public static boolean myVar = true;
private static final String TARGET_PACKAGE_ID = "com.xxxx.test";
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.xxxx.test";
private static Class launcherActivityClass;
...
...
private String getOnScreeninfoByType() {
ArrayList<TextView> textViews = new ArrayList<TextView>();
ArrayList<Button> listButtons = new ArrayList<Button>();
ArrayList<ToggleButton> listToggleButtons = new ArrayList<ToggleButton>();
ArrayList<EditText> listEditTexts = new ArrayList<EditText>();
ArrayList<CheckBox> listCheckBoxes = new ArrayList<CheckBox>();
ArrayList<RadioButton> listRadioButtons = new ArrayList<RadioButton>();
ArrayList<ImageButton> listImageButtons = new ArrayList<ImageButton>();
ArrayList<ImageView> listImageViews = new …Run Code Online (Sandbox Code Playgroud) 在Eclipse Debug透视图中,当在watch表达式中使用引号时返回错误错误_during_the_evaluation
例如:
Log.i("A","blah")
Run Code Online (Sandbox Code Playgroud)
将返回 <error(s)_during_the_evaluation>
要么
solo.getWebElement(By.className("title"), 0)
Run Code Online (Sandbox Code Playgroud)
将返回 <error(s)_during_the_evaluation>
但这在代码执行期间工作正常.任何其他表达中没有任何引号,将工作正常我试图逃避"\"或"\"没有运气(这是java/android代码顺便说一句)
知道如何在Java调试器Watch Expression中使用这些表达式吗?
我正在 android 设备上自动化一些测试。我正在使用 Jenkins 来运行测试(通过作业),当只有 1 个设备连接到机器时,每个作业以 95% 的成功率运行,但是当我插入 2 个或更多 android 设备时,似乎 adb 有一些麻烦,我获得5%的成功率。
可以运行多个 adb 命令实例吗?
这是我为每个作业运行的命令:
adb -s DEVICESERIAL shell am force-stop com.myapp.test
adb -s DEVICESERIAL shell am force-stop com.myapp
adb -s DEVICESERIAL uninstall com.myapp adb -s DEVICESERIAL uninstall com.myapp.test
adb -s DEVICESERIAL install -r com.myapp adb -s DEVICESERIAL install -r com.myapp.test
adb -s DEVICESERIAL shell am instrument -w TESTNAME/android.test.InstrumentationTestRunner
adb -s DEVICESERIAL logcat -d -v time
Run Code Online (Sandbox Code Playgroud)
所有命令都成功运行,但是当测试开始时并且当我连接了多个设备时,我会收到错误消息,例如:
- Unable to find instrumentation target package
- INSTRUMENTATION_STATUS_CODE: …Run Code Online (Sandbox Code Playgroud) 有没有办法通过电子邮件发送压缩的工件(zip).我有一个生成html报告的工具,所以有html文件和带有图标,xml等的子文件夹.使用压缩存档将允许将文件夹结构保留在zip中
我看到的解决方案是使用ant压缩存档文件夹的后期构建任务.
我只是想知道我是否不会错过一个非常明显的更好的方法
谢谢