liv*_*eer 8 java testing jboss code-coverage
我们有一个部署在JBoss 5.1,JDK 1.6 上的应用程序.我们还有用PowerShell编写的脚本进行测试.这些脚本使用Web服务访问应用程序.我想检查脚本的代码覆盖率.有任何想法吗?我看到的大多数工具都在检查JUnit测试覆盖率,但我看不出我们如何使用它们.
AFAIK,所有代码覆盖工具都使用相同的概念(我将省略报告和检查部分):
对于第二步,常见用例确实是运行JUnit测试,但您的测试不一定是JUnit测试.实际上,他们甚至不需要自动化.
并且检测代码不必在单元测试的上下文中执行,它可以打包在WAR/EAR中并部署在容器上(这只需要更多的工作).
对于Cobertura来说,这是我们在常见问题中可以阅读的内容:
使用Cobertura和Web应用程序
我有使用HttpUnit/HtmlUnit/Empirix/Rational Robot的自动化测试,我可以使用Cobertura吗?
是! 这个过程涉及更多,但概念是相同的.首先记录您编译的类.然后创建您的war文件.然后将war文件部署到应用程序服务器(Tomcat,JBoss,WebLogic,WebSphere等)中.现在运行测试.
访问您的类时,它们将在磁盘上创建"cobertura.ser"文件.你可能需要挖掘一下才能找到它.Cobertura将此文件放在它认为是当前工作目录的位置.通常,这是启动应用程序服务器的目录(例如,C:\ Tomcat\bin)注意: 在应用程序服务器退出之前,不会将此文件写入磁盘. 请参阅下文,了解如何解决此问题.
现在您已知道cobertura.ser文件的位置,您应该修改部署步骤,以便将原始cobertura.ser移动到应用程序服务器中的相应目录,然后在完成测试后将其移回.然后运行cobertura-report.
[...]
对于Emma,这是文档所说的:
3.11.如何在{WebLogic,Websphere,Tomcat,JBoss,...}中使用EMMA?
首先,您几乎没有机会使用动态模式(emmarun)和完整的J2EE容器.原因在于许多J2EE特性需要在EMMA检测类加载器之外进行专门的类加载.服务器可能正常运行,但您可能无法获得覆盖数据.
因此,正确的过程是在部署之前检测您的类(离线模式).离线检测始终遵循相同的compile/instrument/package/deploy/get coverage/generate报告序列.跟着这些步骤:
- 使用EMMA的instr工具来检测所需的类.这可以在打包之前作为后编译步骤完成.但是,许多用户还发现让EMMA直接处理他们的罐子(就地,使用覆盖模式,或者通过在全文模式下创建所有内容的单独的检测副本)很方便;
- 正常进行J2EE打包,但不要将emma.jar包含在此级别的lib中,即在.war,.ear等中;
- 找到容器使用的JRE,并将emma.jar复制到其/ lib/ext目录中.如果这是不可能的,请将emma.jar添加到服务器类路径中(以特定于服务器的方式);
- 部署您的检测类,.jars,.wars,.ears等,并通过客户端测试用例或以交互方式或以您的方式运行/测试您的J2EE应用程序;
- 要获取coverage转储文件,您有哪三个选项可用于控制何时EMMA转储运行时覆盖率数据?强烈建议您将coverage.get控制命令与v2.1中提供的ctl工具一起使用.
对于三叶草,请选中" 使用分布式应用程序"页面.
| 归档时间: |
|
| 查看次数: |
5465 次 |
| 最近记录: |