Klaus, Thanks for spending the time to provide an MCVE.
I have to admit I have no idea what exactly is going on here, but what I'm certain of is: 1. This is happening in 2.3.1 because in that version private geb.Page#getAtChecker method has been introduced and it does not exist in 2.2, see: - https://github.com/geb/geb/blob/a948be381fd2e25b5b170a421a555b8bd90128d0/module/geb-core/src/main/groovy/geb/Page.groovy#L498 - https://github.com/geb/geb/blob/a948be381fd2e25b5b170a421a555b8bd90128d0/module/geb-core/src/main/groovy/geb/Page.groovy#L513 vs - https://github.com/geb/geb/blob/0a6789cb3912a13dd69c8e9a58bc10dc746221e0/module/geb-core/src/main/groovy/geb/Page.groovy#L237 in 2.2 In your stacktrace getAtChecker() is called from getShouldVerifyAtImplicitly() but that method does not exist in 2.2 so I showed a different code path as an example. 2. Initialising Groovy FX has to be doing something very strange to Groovy internals or class loading if after it happens out of a sudden private properties are not found when accessed from within the class declaring them. We could potentially cater for GroovyFX causing this behaviour but I'm not sure that if we fix this particular instance a similar issue would not pop up elsewhere or that we actually should. The code in question is valid Groovy code and all tests in our suite pass so why should we be forced not to use it? I'd be inclined to suggest going and asking on the GroovyFX mailing list but the project seems not to be actively developed and the mailing list page asks to post on the general Groovy User mailing list so I don't expect that to yield any results. Another thing I'd potentially try is to use plain JavaFX instead of GroovyFX - the scene you are building seems simple enough so I'd expect using plain JavaFX not to be too big of an inconvenience in this case. Cheers, Marcin On Fri, May 17, 2019 at 3:46 PM Klaus L. <[email protected]> wrote: > I admit being tempted to just roll back to Geb 2.2 and abandon the topic. > But that cannot be the solution, right? > > So I built up a new Geb/Cucumber Maven project, boiling it down to an MCVE > (see attached zip file). > > At least now I am able to link the problem to JavaFX: > We developed a little GroovyFX dialogue running in a separate thread, > allowing to interact with the running Maven Cucumber job (pausing at will, > evaluating some expressions etc.). > And now the MissingPropertyException arises if > > - Geb has version 2.3.1 AND > - JavaFX "Application" is launched during Cucumber World hook. > > Reverting to Geb 2.2 OR removing the GroovyFX call both remove the > Exception. > > Now I am completely lost! How can those two seemingly unrelated "things" > interfere??? :-( > Any ideas, anyone? > > Klaus > > PS: Stacktrace from MCVE project for reference: > > groovy.lang.MissingPropertyException: Unable to resolve atChecker as > content for automation.EcosiaStartPage, or as a property on its Navigator > context. Is atChecker a class you forgot to import? > at > geb.content.PageContentSupport.propertyMissing(PageContentSupport.groovy:47) > at geb.content.PageContentSupport$propertyMissing.call(Unknown Source) > at geb.Page.propertyMissing(Page.groovy:112) > at geb.Page.getShouldVerifyAtImplicitly(Page.groovy:477) > at geb.Browser.to(Browser.groovy:560) > at geb.Browser$to$1.callCurrent(Unknown Source) > at geb.Browser.to(Browser.groovy:537) > at geb.Browser$to$0.callCurrent(Unknown Source) > at geb.Browser.to(Browser.groovy:526) > at geb.Browser.to(Browser.groovy) > at > geb.binding.BindingUpdater$InvocationForwarding.doCall(BindingUpdater.groovy:106) > at automation.EcosiaSteps$_run_closure1.doCall(EcosiaSteps.groovy:6) > at ✽.I open Ecosia(src/test/resources/features/Ecosia.feature:4) > > > > Am Donnerstag, 16. Mai 2019 10:28:26 UTC+2 schrieb Klaus L.: >> >> Thanks for responding :) >> >> Providing an MCVE is not that easy here though, because we have "modular" >> setup with a shared library (bringing in a large GebConfig and necessary >> dependencies), and actual product-related test projects. So I would have to >> flatten the whole structure and compose a whole new small test project e.g. >> for google.com :( >> >> @Trinidad: Thanks for the reference! >> However it seems you are on a quite outdated version of cucumber (1.2.5 >> vs. 4.3.x), so I do not know if we are comparable here. >> >> But focusing on the other difference (Gradle vs. Maven), I played around >> with the configs and found something peculiar: >> When I modify my maven-failsafe-plugin config to reuse the Maven JVM >> process ( <forkCount>0</forkCount> ) then the error disappears! >> This is no feasible workaround for me for other reasons, but an >> interesting observation, I think :-) >> >> >> >> Am Mittwoch, 15. Mai 2019 05:13:29 UTC+2 schrieb Trinidad Esparza: >>> >>> We recently updated the Geb project examples with all proper >>> dependencies . >>> >>> https://github.com/geb/geb-example-cucumber-jvm/blob/master/build.gradle >>> >>> If this doesn’t work let us know but please provide example code. >> >> -- > You received this message because you are subscribed to the Google Groups > "Geb User Mailing List" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/geb-user/86515f31-c5e7-4e03-aabb-69f898adc1bc%40googlegroups.com > <https://groups.google.com/d/msgid/geb-user/86515f31-c5e7-4e03-aabb-69f898adc1bc%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Geb User Mailing List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/geb-user/CA%2B52dQRqQx86D90dc93Amts_5vPikP8_3dUiQ1CHTCfeSSMydg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
