2014-04-14 150 views
2

我开始学习Eclipse中的JUnit测试。用于显示测试结果的插件提供了一个非常干净的测试视图,您可以单击可将您带到正在测试的代码区域的项目。使用Maven进行JUnit测试

当我开始使用Maven时,我注意到您也可以让Maven执行您的JUnit测试。但是,因为Maven是一个命令行进程,并且结果会写入控制台,所以JUnit结果也会发送到那里。它看起来像废话。您必须解析所有控制台文本以查找测试结果。一切都只是普通的旧文本。

这提出了Maven在使用JUnit(或其他任何测试框架)进行测试时的用途?我必须忽略这一点。为什么任何人想要在Eclipse插件提供查看,执行和评估测试的优雅方式时阅读大文本转储?

回答

3

一般而言,您基于命令行构建,因为您已在IDE中正常工作。命令行版本是最终的完整性检查,可能是您释放软件的方式(例如mvn release:perform等)。

虽然有几个插件使得Maven测试输出稍微好一点,但期望测试会通过。如果他们不这样做,请启动Eclipse并再次运行测试。

+0

这意味着我想解析所有的控制台文本以确定测试是否过去? – AndroidDev

+0

@AndroidDev Maven告诉你,如果你的构建因测试失败。那时候,我可能甚至不会去查看输出结果,看看哪些测试失败了。我会切换到Eclipse并再次运行测试以查看发生了什么。 –

+0

那么你真的回答了我的问题。除了单个合格/不合格指示之外,Maven对测试没有任何价值。真正的测试全部在Eclipse内完成。 – AndroidDev

2

Maven在测试JUnit时有什么用途?
单元测试是应用程序开发中的一部分(通常在编码/开发组件时使用),Apache Maven是项目管理工具,(正如Duncan所说)可以帮助我们发布软件。 包括 - 依赖性管理,模块管理,插件管理和测试报告配置。

Maven Objectives

  • 使构建过程中容易
  • 提供了一个统一的构建系统
  • 提供优质的项目信息
  • 提供了最佳实践的发展
  • 允许透明的准则迁移到新功能

请看看下面的线程有关Maven的更多细节:
Why do so few people use Maven?
Why maven ? What are the benefits?

为什么会有人想读一个大文本转储时Eclipse插件提供了观看的一种优雅的方式,执行和评估测试?
对于软件发布的目的,我们需要维护应用程序的统计信息(涵盖了多少场景,测试用例通过..等等)。 Maven支持不同的插件来格式化结果,Maven Surefire Plugin,maven-site-plugin ..等插件帮助我们生成报告不同的格式。

请参考下面的线程有关更多详细信息:
JUnit3 and Junit4 XML Reports with Maven
Is there a decent HTML Junit report plugin for Maven?

+0

我认为这个答案可能会从一些编辑中受益 - 有很多关于Maven的额外信息似乎与这个问题没有关系。只有你的最后两段似乎相关。 –

3

Maven是一个构建工具。其目标和目的是产生可重复和可持续的结果。当我们谈论构建/持续集成服务器时,这一点尤为重要。

所以正常的工作流程/应该是:开发人员通常开发使用他们的IDE(蚀),他们跑他们的测试在IDE中,因为这是开发商为中心,更舒适。

缺少图形环境的构建服务器运行构建工具,即maven。

有时候,行家和Eclipse之间的结果可能会有所不同,在这种情况下为开发者也是他们的机器上运行Maven可能成为必要。

另一个原因使用Maven直接可能是集成测试,启动和停止服务器专门为我们说的Maven生命周期的集成。

一些具体点:Maven的相当舒适显示哪些测试失败摘要:

00:46:21.988 Results : 
00:46:21.988 
00:46:21.988 Failed tests: 
00:46:21.988 MyTest.testPersistErrorStateNewTransaction:48 Test for 'testPersistErrorStateNewTransaction()' not yet implemented! 
00:46:21.988 
00:46:21.988 Tests in error: 
00:46:21.988 MyOtherTest.testMethod 
00:46:21.989 
00:46:21.989 Tests run: 1162, Failures: 1, Errors: 1, Skipped: 491 
00:46:21.989 
00:46:22.003 [ERROR] There are test failures. 
00:46:22.004 

此外,在运行时,从行家,你仍然可以打开神火测试的结果在Eclipse JUnit视图通过双击surefire-reports目录中的测试结果(.xml)。

+1

我不知道你可以在JUnit Eclipse插件中打开.xml文件。感谢那! – Behe