问题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文件中添加一些必要的配置。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.bang.test"android:versionCode="1"android:versionName="1.0"><uses-sdk android:minSdkVersion="8" /><application android:icon="@drawable/icon" android:label="@string/app_name"><!-- 在本应用中导入需要使用的包,放在application里面activity外面 -->

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

        <activity android:name=".JunitTestActivity"android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application>

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

    <!-- 记住这个一要放在application外面,不然会出现配置错误 信息 -->

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

android:targetPackage

="com.bang.test" android:label="Tests for My App" />

</manifest>

必须要添加的配置,已经在上面的示例配置文件中用灰色背景标出来了,配置需要放置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的启动依赖即可。

参考链接

如何进行Android单元测试

Android上的单元测试

在Android上实现Junit单元测试的四部曲

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

在Android中进行单元测试遇到的问题相关推荐

  1. Android中的单元测试

    随着Agile的普及,以及开发人员对测试重要性的认识逐步加深,单元测试已经成了越来越多软件项目开发中不可缺少的一部分.无论项目是不是采用TDD的形式来进行开发,单元测试都能够为项目的修改和重构提供一定 ...

  2. Android中的Junit单元测试

    Android中的Junit单元测试 在实际开发中,经常要对已经实现的功能进行单元测试,以保证当前单元没问题,尽可能的减少已有功能的bug 和Java中的开发一样,Android中对单元测试也可以采用 ...

  3. Android Studio中进行单元测试和UI测试

    目录 在Android Studio中进行单元测试和UI测试 - 1.概述 在Android Studio中进行单元测试和UI测试 - 2.创建新的Android Studio工程 在Android ...

  4. android中断言_Android单元测试(一)

    这章就先来说说android中单元测试的操作,简单走一遍单元测试的流程. 为什么要用到单元测试呢,一般开发谁会写单元测试,反正我认识的人都不会做,又耗时间,效果又一般,要是在单元测试的代码里面又出BU ...

  5. 静态路由_在Android中模拟静态方法:让我们总结一下

    静态路由 在Android中编写本地单元测试时,面临的局限性之一是测试是针对没有任何代码的android.jar版本运行的. 如文档所述,必须模拟对Android代码的任何依赖关系. 一个简单的单元测 ...

  6. android中AndroidManifest.xml 的解析 (转)

    虽然,也做了android开发一年多,可一直有的东西一直了解的不透彻,有时间会把好的东西,分享出来,大家一起学习进步,今天就从mainfest开始. 转自(http://my.eoe.cn/10876 ...

  7. android studio 测试工具,使用Android Studio进行单元测试

    Android Studio已经到了1.2版本,国内的开发者基本也在从Eclipse向Android Studio进行转变,对于Android开发者,以后必将是Android Studio的天下. 昨 ...

  8. Android中SQLiteDatabase操作【附源码】

    像我们做的很多应用程序及网站一样,基本都是对数据库进行增删改查来实现相应的功能.那么Android开发也一样,不过由于在移动客户端应用,所以不会像sql server.mysql那么复杂,Androi ...

  9. Android中的IPC机制

    Android IPC简介 IPC是Inter-Process Communication的缩写,含义就是进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程.那么什么是进程,什么是线程,进程 ...

最新文章

  1. 面试官吐槽:面试了一个三本的学渣,开口就要一万六!
  2. 服务器响应码302,ajax与302响应代码测试 详细出处参考:http://www.jb51.net/article/42327.htm...
  3. JAVA 两个简单的抽奖算法
  4. hive三种调用方式
  5. php_os用法,golang中os包用法
  6. web前端工作笔记008---js延迟执行代码
  7. kindeditor php 漏洞,KindEditor漏洞、优化以及漏洞、BUG修复方案汇总
  8. 一招教你表格里面给方框内打勾
  9. python turtle 画蜡笔小新_蜡笔小新有几集?作者到底怎么死的啊?
  10. html页面字体飞入飞出特效,JS网页特效:星空飞入效果
  11. 苹果IOS开发者账号总结
  12. 【数据库基础】数据库的数据查询
  13. 基尔霍夫电压定律解析
  14. 2,uniapp功能之—扫码(条形码,二维码)点击扫码或者pda侧边按钮扫码
  15. 图像特征提取4:Surf特征
  16. 生化危机5显示无法连接服务器,生化危机5黄金版无法联机解决办法
  17. MySQL学习笔记——第2章 SQL的基本概念和MySQL简介
  18. [luogu P4707] 重返现世
  19. Python+OpenCV3.3图像处理视频教程 贾志刚 代码笔记1
  20. matlab实验代码(总)

热门文章

  1. PHP对于浮点型的数据需要用不同的方法去解决
  2. Cache总义Cache用法之页面声明
  3. 【modbus】libmodbus库的移植与使用
  4. oracle dataguard 日志 很多no,oracle dataguard 日志传输原理
  5. java7特性_Java7特性中,abstract class和interf
  6. mysql update时数据不存在新增_mysql sql语句新增判断,存在修改,不存在新增
  7. git config —global_Git多用户配置
  8. C语言科学计算器思路,大神教你如何用C语言实现科学计算器
  9. 计算机应用基础学期教学小结,《计算机应用基础》的教学总结及小结.docx
  10. 多个前端项目放在一个git好还是_前端工作流