gpt4 book ai didi

使用 Robotium 进行 Android 测试注释

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:58:59 24 4
gpt4 key购买 nike

我目前正在 Android 中构建一个应用程序,并使用 Robotium 进行功能测试(顺便说一句,不要在 Android 1.6 之前的任何系统上使用 Robotium,它太有问题了)。

其中一些测试有随机失败的倾向,主要是 Robotium 缺少文本字段,或者超时,无法读取文本。我正在尝试使用 @FlakyTest 注释,因此它们将在抛出失败的测试错误之前运行两到三次。但是,注释不起作用,测试在失败后不会重新运行。

下面是我如何使用注释:

public class ClassName extends ActivityInstrumentationTestCase2<HomeActivity>{

@LargeTest
@FlakyTest(tolerance=3)
public void testMethod(){

//Here I run my roboitium scripts.

}
}

然后我从命令行运行它:

adb shell am instrument -w com.jayway.test/android.test.InstrumentationTestRunner

无论是 eclipse 还是测试的命令行执行都没有考虑到不稳定的测试注释。有人看到我尝试应用 @FlakyTest 的方式有错误吗?

最佳答案

我看不出您使用 @FlakyTest 注释有任何问题。

我整理了一个快速测试用例来测试@FlakyTest 和 Robotium (v2.2):

public class FlakyTestCase extends ActivityInstrumentationTestCase2<Main> {

private static int count = 0;
private Solo solo;

public FlakyTestCase() {
super("com.stackoverflow.example", Main.class);
}

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

@LargeTest
@FlakyTest(tolerance=3)
public void testFlaky(){
Log.e("FlakeyTestCase", "Execution Count:" + ++count);

solo.assertCurrentActivity(null,Main.class);
solo.clickOnText("Doesn't Exist");

Log.e("FlakeyTestCase", "Shouldn't make it here");
}
}

LogCat 显示以下消息:

Execution Count: 1
Execution Count: 2
Execution Count: 3

所以 @FlakyTest 注释肯定被调用了。测试的(最终)失败显示为:

junit.framework.AssertionFailedError: The text: Doesn't Exist is not found!

消息“不应该在这里”从未被记录。

据我所知,您声明注释的方式没有问题,@FlakyTest 和 Robotium v​​2.2 也没有任何问题。

也许您的测试代码的另一部分有问题?

关于使用 Robotium 进行 Android 测试注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4000686/

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