2014-09-02 176 views
1

我正在使用Spring Tool Suite 3.5.1开发Spring Roo 1.2.5项目。Maven tomcat7部署集成测试失败

  1. 数据库反向工程--schema ssigdl --package〜:我有的EclipseLink(JPA),服务(实现和intefaces)和一个简单的控制器,主要与这些命令生成的实体(不活动记录) 。域 --repository --testAutomatically

  2. 服务的所有--interfacePackage〜。服务--classPackage〜.service.impl

  3. Web MVC框架的建立

  4. 控制器类--class〜.web.CustomPageController --preferredMapping/custompage

然后我尝试使用Maven这一目标部署:

  • tomcat7:部署

当过程到达部分测试时,发生这些错误

Tests in error: 
    testFindEntries(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 
(..) 
    testFindAll(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 
(..) 
    testCount(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 
(..) 
    testFind(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 
(..) 
    testSave(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 
(..) 
    testDelete(com.ssigdl.sirc.domain.SsiArticuloIntegrationTest): 

每创建一个实体都会出现一个错误块。最后,出现错误消息:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12:test (default-test) on project sirc: There are test failures. 

如果我设置的复选框跳过在运行配置窗口测试,编译过程进行顺利。我的问题是:

  1. 为什么集成测试失败?
  2. 我在spring roo命令中有错误吗?
  3. 此错误是否会以某种方式影响我的应用程序?

更新

这是由Spring工具套件抛出的错误的图像

enter image description here

我不能点击的点

解决方案

我跟着@mvivo指示,我发现我有这个错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'ssigdl.sequence' doesn't exist 

在这种link我找到了答案。基本上,实体有这个注解

@GeneratedValue(strategy = GenerationType.AUTO) 

与MySQL的合并导致的错误,所以我用下面的注解来替代:

@GeneratedValue(strategy = GenerationType.IDENTITY) 

感谢您的帮助!

+0

你能用实际的错误信息(至少有一个或两个)填写你的'(...)'标记吗?要说明测试失败的原因有点难,否则。 – kevin628 2014-09-02 21:52:55

+0

你不会相信它,但这正是错误所引发的。也许控制台隐藏了错误,并且我不知道如何检索完整错误 – Jessai 2014-09-02 21:58:45

+0

,如果您使用Eclipse(或Spring Tool Suite),通常您可以单击这些省略号并展开堆栈跟踪或错误消息。 – kevin628 2014-09-02 22:01:02

回答

3

要获取有关测试错误的信息,请打开“导航”视图(菜单Windows > Show views > Navigator)并查看target/surefire-reports。在那里你可以找到所有测试运行的输出。

Why the integration tests are failing?

查找到com.ssigdl.sirc.domain。*测试*文件。你会发现所有输出和测试执行堆栈痕迹

Did I have a mistake in the spring roo commands?

我不这么认为。您可能需要自定义测试以进行调整以使其运行。例如,定制DOD(数据点播)服务以获得连贯的数据来运行测试。

Does this error affect in some way to my application?

如果问题(我猜想)是测试做了错事的数据,你的应用程序可以完美,如果你在服务上以正确的方式处理数据运行。

在我看来,我建议您修复由Roo生成的集成测试以使其运行。

认为Roo只是生成一个模板用于测试(并且仅用于CRUD和adn查找操作)您的实体,但无法让它知道数据库表的应用程序逻辑或特殊规则。这种事情总是你的责任(有时看起来像魔术,但没有;-))。