java-大量的单元测试导致Binder事务失败而冻结

java-大量的单元测试导致Binder事务失败而冻结,第1张

概述我已经为Android应用程序编写了约400个单元测试.如果我逐包运行测试,则一切正常,我的所有测试均通过.但是,如果我尝试一次全部运行它们,最终(进行了约360次测试),Android会吐出来!!!失败的活页夹交易错误!在大约10到20个错误之后,我正在测试的应用程序进程被杀死,并且单元测试甚至从未

我已经为Android应用程序编写了约400个单元测试.如果我逐包运行测试,则一切正常,我的所有测试均通过.但是,如果我尝试一次全部运行它们,最终(进行了约360次测试),AndroID会吐出来!!!失败的活页夹交易错误!在大约10到20个错误之后,我正在测试的应用程序进程被杀死,并且单元测试甚至从未完成.

我应该注意,在此期间Eclipse报告控制台中正在收集测试信息.我认为这很奇怪,因为它表明即使JUnit UI并未反映出它正在运行测试.当一切正常运行时,在“收集测试信息”阶段,我看到测试正在运行,然后启动JUnit UI,然后再次运行所有测试(我通过阅读logcat知道了这一点). (我认为)这是一个单独的问题,但是如果有人知道那是什么,我觉得我会提一下.

截至2011年6月6日编辑

根据克里斯托弗(Christopher)在下面的回答,我已经验证了这种情况仅在尝试通过Eclipse运行时才发生.如果我使用ANT运行测试套件,则所有测试最终都将执行.

当我现在尝试运行测试套件时,Eclipse本质上挂在“收集测试信息”上.我没有让它运行很长时间,但是我会尽快尝试一下,看看它是否完成了.

解决方法:

我再次进行了调查,据我所知,这纯粹是AndroID Eclipse插件的问题.这个问题似乎已解决,但有时仍可能发生(可能与机器有关).

如您所述,Eclipse插件似乎可以两次运行所有测试.第一次实际要做的是收集测试套件和测试名称,以便它可以在该漂亮的分层JUnit UI中显示所有测试名称.

但是,“运行”这样的测试似乎会引起问题.作为AndroID SDK工具v8的一部分,a “workaround” was added在检查每个测试之间存在15ms的延迟.这样做是为了防止“活页夹交易失败……适用于大型测试套件”.

确实,我回到了发生“ FILLED BINDER TRANSACTION”错误的项目,并且无法在命令行上重现它.我们也在Eclipse中进行了尝试,并且无法再进行复制(即使我最初看到此内容时我确信我们拥有SDK Tools r8).

但是,我仍然通常可以在Eclipse中重现它.尝试使用最新的AndroID工具从Eclipse重新运行测试,或者尝试使用我创建的这个最小的GitHub存储库,看看是否可以复制它:
https://github.com/orrc/android-large-test-failures#readme

总结

以上是内存溢出为你收集整理的java-大量的单元测试导致Binder事务失败而冻结全部内容,希望文章能够帮你解决java-大量的单元测试导致Binder事务失败而冻结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1082025.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存