近来一直在弄testNG,弄得想吐血
记得最开始的时候是分清楚单元测试和继承测试的区别,然后看Seam-Reference第31章的内容,当时看的可以说稀里糊涂,好像明白,但知道一用肯定问题就都出来了,我看了下dvdstore的测试类是如何写,然后照着样子试着写,对于从来没写过测试的我来说,那测试写的真的连自己都不明白,当然也就一堆错误,看了多了,开始明白了测试的意思,更有意思的时在写测试的时候,我学会了自己学ANT脚本
接下来,我需要测试数据对测试类进行测试,也就用到dbunit开始时用的是hibernate的虚拟数据库,因为当时没有连接到真实的mysql的数据库,
当然还有失职的“嫌疑”,真是段很郁闷的日子啊
后来终于可以连接到数据库了,更郁闷,我用的方法似乎是“歪门邪道”,没有采用别人的“战术”,为此我又郁闷了一下午,生活啊就是郁闷,啥时能不郁闷呢?
无论“真理”也好“邪道”也好,都是我的劳动成果,我都要记载下来,以后也好“缅怀”下这段郁闷的日子。
(1) 首先介绍dbunit+hibernate虚拟数据库的testng测试
我在报备系统的基础上作的测试(建了两个测试类,testng.xml,mydata.xml测试数据文件,
主要注意的地方:
1 testng.xml文件中对datasourceJndiName参数的设置,使得能找到数据源,这里用的是hibernate虚拟数据库。
2 在mydata.xml的文件中写入测试数据。
3 继承DBUnitSeamTest而不是SeamTest,重写prepareDBUnitOperations()方法,指明测试数据文件的路径,记得路径的正确性哦,我以前就因为路径有问题报错,然后再seamframework.org中发帖子时,才想起来的。
4 persistence-test.xml文件中要把hibernate.dialect设置为org.hibernate.dialect.HSQLDialect。
5 记得把.xml文件拷全到测试目录。
6 记得把dbunit包拷贝进来。
文件整理好放在了D盘的DBUnit+hibernate虚拟数据库+TestNG文件夹下,怕以后忘记,记录下。
(2)介绍dbunit+mysql的testng测试
以上操作类似,当有不同处我列举如下
1 DBUnitSeamTest继承SeamTest的类放置在test/../util/包下,其他测试类都继承这个类。
2 在testng.xml文件中添加 <parameter name="database" value="mysql"/>
<parameter name="binaryDir" value="META-INF/testbinaries"/>
3 连接数据库的文件换为mysql的连接方式
4 persistence-test.xml文件里hibernate.dialect变为org.hibernate.dialect.MySQL5InnoDBDialect
5 记得把数据库中的文件备份,然后再数据库中重新建立一个即将测试的数据库。
我在此过程中遇见一些错误(只记下了主要的错误)
首先遇到了“报错2”附件1种的错误,通过改变了hibernate.dialect的值,错误消失,然后出现了“报错3”的信息,原本数据库中是有表的,然后我将库中表明删除,一切正常。
关于emma的学习:
有点累了,还没回家呢,所以不多说了,SampleProjects中我可以成功的测试并进行测试 覆盖率。在我的E:/emma-example中的SampleProjects项目。
分享到:
相关推荐
【JBoss教程及深入浅出JBoss+Seam】是一个针对企业级Java应用服务器JBoss的深度学习资源,其中包含了两个主要部分:JBoss教程和对JBoss与Seam框架结合使用的详细介绍。这两个主题都是Java开发人员在部署和管理企业...
首先,让我们深入了解Seam和JSF这两个关键概念。JavaServer Faces (JSF) 是一种用于构建Web用户界面的MVC(模型-视图-控制器)框架。它提供了一种声明式的方式来管理组件和事件处理,减轻了开发者的工作负担。而Seam...
描述中提到的“控制按钮调用两个独立ui界面”,意味着我们需要在主窗口中添加至少两个按钮,并为每个按钮分配一个槽函数。当按钮被点击时,槽函数会被调用,从而加载并显示新的UI界面。这通常涉及到`QStackedWidget`...
标题"richfaces seam 经典资料"提及了两个关键的技术:RichFaces和Seam。这表明该压缩包中的内容是关于这两个技术的深入学习和实践资源。 RichFaces是一个开源的JavaServer Faces (JSF)组件库,它提供了丰富的用户...
虽然这两个框架可以互补使用,但它们的设计理念和实现方式存在一定的差异,比如EJB 3.0使用注解进行配置,而JSF则依赖XML文件。此外,EJB 3.0和JSF之间的组件在框架层面缺乏直接的交互。 JBoss Seam通过引入一致的...
实现在同一个activity中通过一个按钮切换两个不同的布局,此处的按钮并非同一个按钮控件,而是在两个不同的布局文件中点击按钮实现布局的切换。参考博客:http://blog.csdn.net/u010963246/article/details/47324229
在Android开发中,有时我们需要实现同时在两个GLSurfaceView上显示摄像头预览的效果,例如在进行视频通话或者多画面监控的应用场景。然而,这并非易事,因为涉及到多个GLSurfaceView与摄像头预览数据的同步处理,...
Seam Carving实现图像的...而第五部分则包含两个方面的实验尝试与结果: 1.结合其他算法重新评估像素重要性并生成能量图,观察图像剪裁结果。 优化算法时间性能,一次性选择多条 Seam 进行剪裁,观察图像剪裁的结果。
新旧两个版本 cadence管方学习教程电路 一百九十多页文档 还包括PLL的VerilogA完整的建模 都有testbench安装好就可以直接跑仿真 仿真包含整体电路和子模块电路所有的 还有送一些收集的PLL树籍,无敌全 还有送matlab...
通过这个MATLAB源码,用户不仅可以理解Seam Carving的工作原理,还可以深入学习如何在实际项目中应用图像处理算法以及构建交互式GUI。这对于学习图像处理和计算机视觉的学生或研究人员来说是一份宝贵的资源。
本文将详细讲解如何通过三个非共线点来计算两个坐标系之间的旋转矩阵和平移向量。 首先,我们设定目标是求解坐标系2相对于坐标系1的转换关系,即找到一个旋转矩阵R和一个平移向量T,使得坐标系2中的点P2可以通过...
采用c++实现seam carving...其中分为两个程序,其中一个是做的图片的缩小放大,命名为one;另外一个程序为目标的移除和保护,命名为two。均是基于c++实现的,其中用到了opencv,没有下载这个库的同学记得下载后再运行哈
本文将深入探讨如何在Android环境中实现两个子线程之间的通信。 首先,理解Android线程模型至关重要。主线程,也称为UI线程,负责处理用户界面的更新和事件响应。为了不阻塞主线程,我们通常会在子线程中执行耗时...
WebApi和访问WebApi是开发过程中常见的两个概念,它们在构建分布式系统和提供网络服务时起着关键作用。本文将深入探讨这两个项目及其关联技术,包括WebApi的使用和通过HttpWebRequest类进行WebApi调用。 WebApi是...
在Android平台上实现两个手机间的通信是一项常见的需求,可以用于数据共享、实时聊天或者协同操作等场景。本篇文章将深入探讨如何实现这样的功能,主要涉及以下几个关键知识点: 1. **蓝牙通信**:Android提供了...
新旧两个版本 90nm 45nm 新旧两个版本 cadence管方学习教程电路 一百九十多页文档 还包括PLL的VerilogA完整的建模 都有testbench安装好就可以直接跑仿真 仿真包含整体电路和子模块电路所有的 还有送一些收集的PLL树...
从朋友手里所得,感觉极好,推荐给大家。 作者QQ:81053166 ...属性,按'读源数据',然后把这个工具程序及同目录 下的sour ce.mdb一起拿到客户的电脑上,运行,填上数据库属 性,按'比 对',然后按'执行',一切都OK了!
Seam组件可以分为两种:有状态的会话Bean和无状态的会话Bean。有状态的会话Bean可以维护会话状态,而无状态的会话Bean则不能维护会话状态。 Seam组件部署 Seam组件可以通过-components.xml文件来部署。components....
标题提到的“一个超强的比较两个文件夹及文件内容的比较器”是一款专为此目的设计的高效工具。这款工具不仅能够进行单一文件的文本比较,而且具备批量比较文件夹的能力,这在处理大量文件时极大地提升了效率。 传统...