当前位置: 首页 > 知识库问答 >
问题:

异常后如何继续Android instrumentation测试运行?

裴意
2023-03-14

显然,当插入指令的应用程序中发生on异常时,插入指令的测试运行将停止:

测试未能运行到完成。原因:“由于“异常”,检测运行失败。”。查看设备日志以了解详细信息

这是自定义仪表运行程序中所需的行为还是错误配置?

我正在使用自定义的监视器仪表[1]来自动化验收测试。

不幸的是,当一个测试中发生on异常时,测试执行被取消。我希望测试套件能够完成,并且只标记失败的测试,就像在JUnit中一样。

如果一个测试中发生异常,是否有一种在不退出整个检测的情况下执行(连接)测试的通用方法

  1. https://github.com/cucumber/cucumber-jvm/blob/master/examples/android/android-studio/Cukeulator/app/src/androidTest/java/cucumber/cukeulator/test/Instrumentation.java

共有3个答案

微生毅
2023-03-14

我最近在寻找这个问题的解决方案,发现了一些其他人可能会觉得有用的信息。

输入org。朱尼特。规则。错误收集器。然而,如果您的检测测试使用的是不推荐ApplicationTestCase,这将不起作用

下面是我从一个要点中找到的一些示例代码,以帮助入门:

package com.foo;

import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ErrorCollector;

import static org.hamcrest.Matchers.equalTo;

/**
 * Created: 12/04/19 17:12
 *
 * @author chris
 */
public class MyTest {
    @Rule
    public ErrorCollector collector = new ErrorCollector();

    @Test
    public void myTest() {
        collector.checkThat("a", equalTo("b"));
        collector.checkThat(1, equalTo(2));
    }
}

狄兴业
2023-03-14

你可以试着把你的根build放进去。格雷德尔

tasks.withType(Test) {
  ignoreFailures = true
}

根据留档:

如果其中一个测试失败,在任何设备上,构建都将失败。

检查这个android测试

衡建中
2023-03-14

当出现问题时(例如,您想要检查的某些条件),检测测试会引发异常。通常可以使用try-catch语句(或更改这些检查)避免某些测试失败。在这种情况下,有些东西让Dalvik虚拟机停止了。这通常是由应用程序崩溃引起的。试着仔细检查你的测试流程,分析是否有一些崩溃。此外,确保不要使用系统。在某些活动中退出onDestroy()中的(0),因为这可能会导致问题。我希望能帮助你。

 类似资料:
  • 问题内容: 我有这段代码。我想回到循环的起点,并再次要求用户输入。但是,它总是循环而不停止请求输入。我的代码有什么问题?谢谢 问题答案: 从http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextInt%28int%29: “如果翻译成功,则扫描程序将前进经过匹配的输入。” 啊,但是如果翻译是什么 不是 成功的?在这种

  • 问题内容: 我的示例代码如下: 我的要求是,在捕获到异常之后,我要处理数组的其余元素。我怎样才能做到这一点? 问题答案: 您的代码应如下所示:

  • 问题内容: 我的代码中有一个try … except块,当抛出异常时。我真的只想继续编写代码,因为在这种情况下,所有内容仍然可以正常运行。问题是,如果您将except:块保留为空或不执行任何操作,则会出现语法错误。我不能使用continue,因为它不在循环中。我可以使用一个关键字来告诉代码继续运行吗? 问题答案: except Exception: pass 适用于pass语句的Python文档

  • 问题内容: 因此,我的教授为我们分配了一个项目,我们必须从文本文件中接收命令并使用它们来驱动程序的流程。这些命令-起飞,着陆,装载货物,卸载货物等-用于模拟飞机状物体。 有时执行这些命令没有意义,例如在飞机飞行中装载货物。因此,为防止发生此类情况,我们必须在自己的异常类中进行编码,即 “如果命令飞机在飞行中装载货物,则抛出InvalidActionException” 我的问题是:引发异常后,如何

  • 问题内容: 我正在尝试引发异常(不使用try catch块),并且程序在引发异常后立即完成。有没有一种方法可以在我引发异常之后继续执行程序?我抛出了在另一个类中定义的InvalidEmployeeTypeException,但是我希望程序在抛出该异常后继续执行。 问题答案: 试试这个:

  • 这是我的一个面试问题。我们有一个硒测试类,有5,6个硒测试。 测试3正在执行中,发生了网络故障。现在一旦网络恢复,如何配置框架,使它应该从失败的地方开始,就像从第三次测试开始一样。并且应该执行已经执行的测试1和2。假设framework是JUnit。