首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IDEA测试使用grails的最佳方法是什么?

使用IDEA测试使用grails的最佳方法是什么?
EN

Stack Overflow用户
提问于 2010-05-20 09:50:27
回答 1查看 383关注 0票数 2

我真的有一个非常不愉快的时间测试使用Grails。我会描述我的经历,我想知道是否有更好的方法。

  1. 我在测试中遇到的第一个问题是,当.save()在集成测试中失败时,.save不会立即反馈给开发人员。因此,假设您有一个包含12个字段的域类,其中一个字段违反了约束,在创建实例时不知道.就是救不了人。当然,随后的测试代码将失败。

这很麻烦,因为被测试的东西可能很好.真正的风险和痛苦是测试本身的设置代码。

因此,我已经尝试养成使用.save(failOnError: true)来避免这个问题的习惯,但是这并不是每个从事该项目的人都能轻松执行的。而且有点臃肿。对于作为单元测试一部分运行的代码,最好打开它。

  1. 集成测试运行缓慢。我不明白为什么保存一个对象的集成测试需要15-20秒才能运行。有了一些仔细的测试计划,我已经能够让1000个测试与一个实际的数据库对话,并在每次测试之后在大约同一时间进行dbunit转储!
  2. 很难运行所有的单元测试,而不是IDEA中的集成测试。
  3. 集成测试是一个巨大的痛苦。在集成测试失败时,Idea实际上显示了一个绿色条。grails给出的输出表明某件东西失败了,但它没有说明它是什么。上面说要查看测试报告..。这迫使开发人员启动他们的文件系统来搜索愚蠢的html文件。好痛啊。

然后,一旦您获得html文件并单击失败的测试,它将告诉您一个行号。由于这些报告不在IDE中,所以您不能只单击堆栈跟踪就可以转到代码行.你得回去自己找。阿格!@!

也许人们能忍受,但我拒绝。测试不应该如此痛苦。它应该是快速和无痛的,否则人们不会这样做。

请帮帮忙。解决办法是什么?Rails而不是Grails?完全不同的东西?我喜欢Grails框架,但它们从来没有演示过测试的原因。他们有一个时髦的框架,但测试是痛苦的。

在过去的1.5个月中使用了Scala,并且完全被ScalaTest所宠坏。我不能再这样下去了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-20 15:20:21

可以在配置文件中设置此属性:

代码语言:javascript
复制
grails.gorm.failOnError=true

这将使其成为保存的系统范围默认设置(如果需要,可以使用.save(failOnError: false)覆盖)。

如果只想在测试中使用这种行为,可以将其放在Config.groovy中特定于环境的节中。实际上,我喜欢这是一个项目范围的行为。

我确信有一种方法可以在定义的范围内打开/关闭failOnError,但我还没有研究如何做到这一点(可能是一篇很好的博客文章,如果我写了一篇文章,我会更新的)。

我不知道您的想法中有什么错误配置,但是当我的测试失败时,它显示了一个红色的栏,我可以点击堆栈跟踪中的行,然后直接处理这些问题。intellij的最新版本甚至会崩溃掉大多数试图修复问题时不感兴趣的元类漫游。

如果您还没有这样做以生成您的项目,我将尝试删除现有的..ipr/..iml/..iws/..idea文件,并运行此命令让grails重新生成您的配置:

代码语言:javascript
复制
grails integrate-with --intellij

然后运行生成的.ipr文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2872590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档