命令行上的Webflow集成测试中未添加Grails\Groovy语法

命令行上的Webflow集成测试中未添加Grails\Groovy语法,grails,integration-testing,grails-controller,spring-tool-suite,syntactic-sugar,Grails,Integration Testing,Grails Controller,Spring Tool Suite,Syntactic Sugar,我有一个测试webflow的集成测试,每当它到达被测试控制器代码中的某个点时,我会看到类似以下的错误: org.springframework.webflow.execution.ActionExecutionException: Exception thrown executing org.codehaus.groovy.grails.webflow.engine.builder.ClosureInvokingAction@ac0e86f in state 'blahQuestions' of

我有一个测试webflow的集成测试,每当它到达被测试控制器代码中的某个点时,我会看到类似以下的错误:

org.springframework.webflow.execution.ActionExecutionException: Exception thrown executing org.codehaus.groovy.grails.webflow.engine.builder.ClosureInvokingAction@ac0e86f in state 'blahQuestions' of flow 'blahBlah' -- action execution attributes were 'map[[empty]]'
    at grails.test.WebFlowTestCase.signalEvent(WebFlowTestCase.groovy:142)
    at com.blah1.blah2.blah3.blah4.BlahFlowIntegrationTests.testblahQuestions(BlahFlowIntegrationTests.groovy:91)
Caused by: groovy.lang.MissingPropertyException: No such property: blahMessage for class: org.springframework.webflow.core.collection.LocalAttributeMap
    at com.blah1.blah2.blah3.blah4.BlahController$_closure2_closure15_closure22.doCall(BlahController.groovy:178)
是由有问题的部分抛出的:flow.blahMessage=where flow.put'blahMessage'可以正常工作。只有当我从命令行运行测试时才会发生这种情况:grails测试应用集成:,从eclipse运行的测试右键单击test->runas->grails命令测试应用工作正常

Grails2.2.3

为什么会发生这种情况?我如何修复它

更新:


当我单独通过命令行运行测试时,测试将通过,但如果我运行所有集成测试,它将失败。

看起来像是测试污染,我的编辑“当我单独通过命令行运行测试时,测试将通过,但如果我运行所有集成测试,它将失败”。在其他集成测试中使用@TestFor和@Mock,您应该只在单元测试中使用它们


我通过遵循Ted Naleid的“修复单独通过但作为套件运行时失败的Grails测试”解决了这个问题,这正是发生在我身上的事情。这篇文章提供了一个groovy类,您可以使用它来查找测试仍将失败的最小测试组合。

您写道:对不起,BalRog,我在这个问题上的拼写错误是我的错,在它们匹配的实际代码中,我必须根据策略对其进行修改,我应该仔细检查所有拼写。实际上我也犯了一个错误。我打算把我的回答作为评论发表。我现在已经把它取下来了。您还写道:我怀疑它被视为一个固定属性类,我只是不知道为什么,因为它在实际代码中运行良好。LocalAttributeMap的属性集初始化后,似乎不允许您添加新的属性映射键。您是否可能在一个上下文中实例化为LocalAttributeMap,而不是在另一个上下文中实例化为LocalAttributeMap?就设置值的两种不同方式而言,当我运行测试时,一行是唯一的区别,测试运行之间没有其他代码更改。我使用setCurrentState'blahQuestions'而不是从头开始流。然而,一行代码的改变修复了这一问题,因此我认为它与此无关。