gpt4 book ai didi

java - 如何创建机器人测试套件?

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:04 26 4
gpt4 key购买 nike

使用下面的代码,测试没有按照我想要的顺序执行。test_homescreen 在 test_splashscreen 之前执行。

我想指定要运行的测试及其执行顺序。我相信我需要创建一个测试套件,但我不知道如何实现它。

package com.myapp.test;
import com.jayway.android.robotium.solo.Solo;
import android.test.ActivityInstrumentationTestCase2;
import com.myapp.R;

public class myTest extends ActivityInstrumentationTestCase2{

private static final String TARGET_PACKAGE_ID="com.myapp.test";
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME="com.myapp.gui.SplashScreen";
private static Class launcherActivityClass;
static{
try
{
launcherActivityClass=Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e){
throw new RuntimeException(e);
}
}
public myTest ()throws ClassNotFoundException{
super(TARGET_PACKAGE_ID,launcherActivityClass);
}
private Solo solo;

@Override
protected void setUp() throws Exception{
solo = new Solo(getInstrumentation(),getActivity());
}

public void test_splashscreen() throws InterruptedException {
TextView splashAppVersion = (TextView) solo.getView(R.id.AppVersion);
assertTrue(splashAppVersion.isShown());
}

public void test_homescreen() throws InterruptedException {
ListView lv = (ListView) solo.getView(R.id.List);
assertTrue(lv.isShown());
}

@Override
public void tearDown() throws Exception {
try {
solo.finishOpenedActivities();
} catch (Throwable e) {
e.printStackTrace();
}
super.tearDown();
}
}
  1. 先执行 test_splashscreen(),然后执行 test_homescreen()

  2. 只执行 test_homescreen()

这篇文章似乎接近我想要的,但我无法利用它。太笼统了。 Android Robotium - How to manage the execution order of testcases?

最佳答案

正如我们所知,robotium 按字母顺序运行测试用例。因此,为了获得更好的结果,我们可以为单独的 Activity 设置单独的测试用例。稍后与该 Activity 相关的其他测试用例可以保存在同一个包中(为单独的 Activity 保留单独的包)。这将有助于一起运行同一 Activity 的测试用例。要更改测试顺序,您始终可以在命名测试用例时使用字母表。例如:“testAddSplash”将在“testHomeScreen”之前运行。

您还可以使用 suite() 方法:

public static final Test suite()
{
TestSuite testSuite = new TestSuite();
testSuite.addTest(new MyTestCase("test1"));
testSuite.addTest(new MyTestCase("test2"));
return testSuite;
}

您的测试用例必须有一个无参数构造函数和一个带有字符串参数的构造函数,如下所示。

public MyTestCase(String name)
{
setName(name);
}

关于java - 如何创建机器人测试套件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13149817/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com