天天看点

在Android中进行单元测试遇到的问题

在使用junit进行测试的时候,遇到这个问题。网上的解释是:使用eclipse对java代码进行调试,无论是远程jvm还是本地jvm都会进行socket通讯.发生这样的错误是由于这些软件会修改winsock,还会监听和占用一些端口,socket通讯不上造成的。

我通过cmd →ping localhost ,发现localhost指向::1,这是因为我的系统是win7 ,它支持ipv6的原因。而eclipse需要localhost指向127.0.0.1。于是就修改hosts文件(c:\windows\system32\drivers\etc\hosts)。发现hosts中有两行被注释掉了(#后的东西代表被注释掉了)。

然后,去掉127.0.0.1前的#号,就可以了。如果没有127.0.0.1   localhost这行,则自己手动添加上去。这样我们就将localhost重定向为127.0.0.1了。

这个问题也可能是本地的配置文件被修改,或防火墙开着的原因。如果本地文件被修改,那么在cmd命令行里面输入netsh winsock reset命令就可以解决。

在Android中进行单元测试遇到的问题

<uses-library android:name="android.test.runner" />

<uses-permission android:name="android.permission.run_instrumentation" />

<instrumentation android:name="android.test.instrumentationtestrunner"

="com.bang.test" android:label="tests for my app" />

在Android中进行单元测试遇到的问题

必须要添加的配置,已经在上面的示例配置文件中用灰色背景标出来了,配置需要放置manifest中的位置在注释中。

根据自己的程序,在androidmanifest.xml文件中配置上面的信息。如果上面的信息配置正确,鼠标右键单击工程,选择run as\run configurations,在android junit test选项中选择工程,将会看到下面这个界面:

在Android中进行单元测试遇到的问题

在instrumentation runner后的列表框选项中,我们看到android.test.instrmentationtestrunner,并处于当前选择状态。如果这个没 有选择框中没有任何选项,就说明androidmanifest.xml配置有问题。

1、首先确保你已经引入了junit测试框架,添加的办法是:右键点你的项目→选中“build path”→选中“configure build path…”→在libraries选项卡中点击“add library”(如下图)→ 添加junit4测试框架

在Android中进行单元测试遇到的问题

2、记得在“order and export”选项卡中添加junit 4的依赖(如下图)。

在Android中进行单元测试遇到的问题

控制台中会有一段错误提示

在Android中进行单元测试遇到的问题
在Android中进行单元测试遇到的问题

后面发现是debug configuration的问题。我的测试项目的bootstrap entries,默认是android2.3.3。只要去掉这个东西就行了。只要右键点你的项目→选中“debug as”→ 选择“debug configurations”→然后按下图操作,去掉对android2.3.3的启动依赖即可。

在Android中进行单元测试遇到的问题

参考链接

<a href="http://tech.sina.com.cn/s/2009-12-04/16071161345.shtml" target="_blank">android上的单元测试</a>

<a href="http://kb.cnblogs.com/page/77424/">在android上实现junit单元测试的四部曲</a>

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/p/3517291.html

继续阅读