显然,当检测到的应用程序发生异常时,将停止检测测试运行:
测试未能完成。原因:'仪表运行因“异常”而失败。''检查设备logcat以获取详细信息
这是自定义检测运行器中的所需行为还是配置错误?
我使用自定义MonitorinInstrumentation
[1]来自动化验收测试。
不幸的是,在一次测试中发生异常时,测试执行被取消。我希望测试套件完成并且只标记失败的测试,就像在JUnit中一样。
在一次测试中发生异常的情况下,是否存在执行(连接)测试而不退出整个测试的一般方法?
答案 0 :(得分:2)
当出现问题时(例如,您要检查的某些条件),Instrumentation测试会引发异常。您通常可以使用try catch语句(或更改这些检查)来避免某些测试失败。 在这种情况下,有一些东西让Dalvik虚拟机停止了。这通常是由您的应用程序崩溃引起的。尝试仔细检查您的测试流程,以分析是否存在崩溃。 另外,请确保在某些活动中不要在 onDestroy()中使用 System.exit(0),因为这可能会导致您的问题。 我希望能帮助你。
答案 1 :(得分:0)
您可以尝试插入根build.gradle
tasks.withType(Test) {
ignoreFailures = true
}
根据文件:
如果其中一个测试失败,则在任何设备上,构建都将失败。
答案 2 :(得分:0)
我最近正在寻找解决此问题的方法,并且发现了一些其他人可能认为有用的信息。
输入org.junit.rules.ErrorCollector。自won't work if your instrumentation tests are using deprecated ApplicationTestCase<Application>
class以来,在此I only needed the application context期间,我能够使用_input = 'Abba' # _input = 1221
def isPalindrome(_):
in_str = str(_).casefold() # Convert number to string + case insensitive
for _ in range(int(len(in_str) / 2)): # Loop from 0 till halfway
if in_str[_] != in_str[~_]:
return False
return True
print(_input, isPalindrome(_input) and ' is palindrome' or ' is not palindrome')
来解决此问题。
以下是gist I found中的一些示例代码,可帮助您入门:
androidx.test.platform.app.InstrumentationRegistry