博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Android中进行单元测试遇到的问题
阅读量:7063 次
发布时间:2019-06-28

本文共 2679 字,大约阅读时间需要 8 分钟。

问题1、Cannot connect to VM  socket closed

在使用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中有两行被注释掉了(#后的东西代表被注释掉了)。

# localhost name resolution is handled within DNS itself.#    127.0.0.1       localhost#    ::1             localhost

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

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

问题2:在Android中进行单元测试,需要在项目中的Manifest.xml文件中添加一些必要的配置。

<uses-library android:name="android.test.runner" />
<uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage
="com.bang.test" android:label="Tests for My App" />
 

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

根据自己的程序,在AndroidManifest.xml文件中配置上面的信息。如果上面的信息配置正确,鼠标右键单击工程,选择Run As\Run configurations,在Android JUnit Test选项中选择工程,将会看到下面这个界面:

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

问题3、Test run failed: Instrumentation run failed due to 'java.lang.ClassNotFoundException'

1、首先确保你已经引入了JUnit测试框架,添加的办法是:右键点你的项目→选中“Build Path”→选中“Configure Build Path…”→在Libraries选项卡中点击“Add Library”(如下图)→ 添加JUnit4测试框架

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

 

问题4、在Android项目中的测试类点击"run as JUnit test"出错

 

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

Invalid layout of java.lang.String at value## A fatal error has been detected by the Java Runtime Environment:##  Internal Error (javaClasses.cpp:136), pid=5560, tid=5584#  fatal error: Invalid layout of preloaded class## JRE version:  (7.0_40-b43) (build )# Java VM: Java HotSpot(TM) Client VM (24.0-b56 mixed mode windows-x86 )# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows## An error report file with more information is saved as:# D:\我的文档\workspace\solarTest\hs_err_pid5560.log## If you would like to submit a bug report, please visit:#   http://bugreport.sun.com/bugreport/crash.jsp#

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

 

 

 

参考链接

 

本文转自陈哈哈博客园博客,原文链接http://www.cnblogs.com/kissazi2/p/3517291.html如需转载请自行联系原作者
kissazi2
你可能感兴趣的文章
上三角
查看>>
C# 多线程学习系列二
查看>>
简单词法分析器的实现
查看>>
9-14NOIP模拟赛总结
查看>>
进程中的信号量
查看>>
Docker 快速入门教程
查看>>
centos7 xfs 文件系统配置quota 用户磁盘配额
查看>>
2019-1-5吃货联盟作业
查看>>
poj 1836 -- Alignment
查看>>
安卓中自定义并使用Volley框架请求网络
查看>>
Linux运维笔记-后端运行脚本
查看>>
Java数据类型、变量、运算符、语句。
查看>>
格式化输出函数:printf 那些事 (C语言)
查看>>
windows CE 6.0编译报BLDDEMO: There were errors building MY283错误解决办法
查看>>
FTP基础知识
查看>>
今天博客开通了
查看>>
web.xml中的*.jsp如果当welcome-file,eclipse在下次跑的时候不自动更新到tomcat中的问题(eclipse可以去死了)...
查看>>
jQuery 选择器
查看>>
NettyIO
查看>>
重写重要的库函数
查看>>