2010-05-11 34 views

回答

2

测试数据是插件的主要焦点,但我将它用于各种数据加载情况,包括引导数据进入一个新的系统。

您需要注意的唯一事情是该插件在设计上会填充您不提供的所需数据中的任何洞。这意味着你应该指定你想要的特定值的所有东西(或者把它放在你提到的TestDataConfig中)。如果你不给build-test-data一个值,它会产生一些东西,这可能是你不想要的东西。

围绕buildLazy新增的功能使您可以更轻松地挂接到您在BootStrap配置中可能具有的对象的现有图形中。

+0

泰德..谢谢你的建议..不可避免地,我必须使用插件,因为它可能是进行集成测试的最佳方式。但是,根据Jared的建议,我一直在使用脚本编写我的数据(http://bitbucket.org/tednaleid/grails-run-script/changeset/14ab603ebf11#chg-scripts/RunScript.groovy)。它的工作原理除非我在您的博客中提到您无法访问该服务,否则这一刻很棒。我包含了这个包(灵活插件的一部分:import grails.plugins.nimble.core。*)并定义了像def userService这样的服务。当我调用此服务的方法时,出现错误 – bsr 2010-05-11 21:13:10

+0

执行脚本时出错交互式:无此类属性:userService类:Script1 应用程序上下文关闭... 应用程序上下文关闭。 你能帮我吗..我最终会迁移到所有这些ur插件..非常感谢.. – bsr 2010-05-11 21:14:12

+0

@bsreekanth我猜你没有正确实例化你的userService,听起来像它不是在您的脚本中定义。你可以像这样使用类似于你的服务的bean来询问spring上下文:def userService = grailsApplication.mainContect.getBean(“userService”)。 如果grailsApplication不在范围/定义范围内,您可以从ApplicationHolder类中获取一个。 HTH – 2010-05-12 02:50:14

1

这取决于你的数据。如果你只需要一些东西,如管理员帐户信息,类别列表等,它应该工作正常。如果您使用初始种子数据测试您的应用,并且一切正常,我会使用它。对于大型或复杂的数据导入,我会使用gant脚本为所有域对象创建和保存。例如,我正在开发一个项目,该项目要求我将数据从遗留数据库移出到Grails应用程序中。为此,我运行一个使用JDBC调用的脚本从旧数据库中获取所有旧数据。然后,我根据这些数据创建并保存新的域对象。有关如何运行可访问包括Gorm在内的整个Grails上下文的脚本的示例,请参阅this

+0

感谢您的帮助..脚本工作很好,除了我无法访问服务方法(如下所述)..希望作者帮助我..再次感谢 – bsr 2010-05-11 21:15:03