我正在使用Spring Tool Suite 3.5.1开发Spring Roo 1.2.5项目。我已经使用EclipseLink(JPA),服务(实现和接口)以及一个简单的控制器(主要使用以下命令)生成了实体(没有Active Record):
数据库逆向工程师--schema ssigdl --package〜.domain --repository --test自动
全部服务--interfacePackage〜.service --classPackage〜.service.impl
Web MVC设置
控制器类--class〜.web.CustomPageController --preferredMapping / custompage
然后,我尝试使用maven来实现此目标:
当过程到达测试的一部分时,就会发生这些错误
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.
如果在“运行配置”窗口中选中了“跳过测试”复选框,则编译过程将成功进行。我的问题是:
更新
这是Spring Tool Suite抛出的错误的图像
我无法点击圆点
解决方案
我按照@mvivo的说明进行操作,发现出现此错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'ssigdl.sequence' doesn't exist
在此链接中,我找到了答案。基本上,实体具有此注释
@GeneratedValue(strategy = GenerationType.AUTO)
与MySQL结合使用会导致错误,因此我改用了以下注释:
@GeneratedValue(strategy = GenerationType.IDENTITY)
谢谢你的帮助!
要获取有关测试错误的信息,请打开“导航”视图(菜单Windows > Show views > Navigator
)并查看target/surefire-reports
。在那里,您可以找到测试运行的所有输出。
为什么集成测试失败?
查看com.ssigdl.sirc.domain。* Test *文件。在那里,您将找到测试执行的所有输出和堆栈跟踪
我在spring roo命令中是否有错误?
我不这么认为。您可能必须自定义测试以进行调整以使其运行。例如,自定义DOD(按需数据)服务以获取一致的数据以运行测试。
此错误会以某种方式影响我的应用程序吗?
如果问题(如我想的那样)是测试对数据做错了,那么如果您以正确的方式在服务上处理数据,则您的应用程序可以完美运行。
我认为,我建议您修复Roo生成的集成测试以使其运行。
认为Roo只是为您的实体生成一个测试模板(并且仅用于CRUD和查找操作),但是无法让它知道数据库表上的应用程序逻辑或特殊规则。这类事情始终是您的责任(有时看起来像魔术,但没有魔咒;-))。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句