
我已经为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事务失败而冻结所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)