Wednesday, August 3, 2022

Re: net.ltgt.gwt.maven and testing in multi-module project structure?

Maybe this is related to the issue described at https://lightrun.com/answers/gwtproject-gwt-28-rc2-all-gwttestcase-after-the-first-fails ?

On Wednesday, August 3, 2022 at 9:58:16 PM UTC-7 Slava Imeshev wrote:
No and no. I'm following the structure generated by net.ltgt.gwt.maven's 

mvn archetype:generate \
   -DarchetypeGroupId=net.ltgt.gwt.archetypes \
   -DarchetypeVersion=LATEST \
   -DarchetypeArtifactId=modular-webapp

That generates Maven's client, shared and server modules. shared is not a GWT module in that structure. At any rate, I changed the module name to have the package name set as a super package of both client and shared and the compilation goes through. 

Now, while it compiles, the client module tests fail with to instantiate any custom widgets that are *below* the module package 'com.effectiveem.app.gwt'. For example, 'com.effectiveem.app.gwt
.client'

[ERROR] testUpdateRowWithUnmodified(com.effectiveem.app.gwt.client.document.GapAnalysisItemListTableGWTTest)  Time elapsed: 0.032 s  <<< ERROR!
com.google.gwt.core.shared.SerializableThrowable: com.effectiveem.app.gwt.EemApp.JUnit:com.effectiveem.app.gwt.client.document.GapAnalysisItemListTableGWTTest.testUpdateRowWithUnmodified: could not instantiate the requested class
Caused by: com.google.gwt.core.shared.SerializableThrowable: (TypeError) : Cannot call method "new" of undefined

Obviously, I'm doing something wrong but I'm struggling to understand what.

Slava Imeshev



On Aug 3, 2022, at 6:45 PM, Michael Conrad <m.conr...@gmail.com> wrote:

Did you give the shared module a gwt.xml file? Did you inherit in the main project's gwt.xml the shared module's gwt.xml file?

On Wed, Aug 3, 2022 at 8:48 PM Slava Imeshev <ime...@gmail.com> wrote:
Continuing the journey, in this multi-module client/shared/server structure, is it possible to have the shared code in a package different from the client? 

I get 

"No source code is available for type com.effectiveem.app.gwt.shared.GapAnalysisLineItemVO; did you forget to inherit a required module?
[ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly"

The client sits in com.effectiveem.app.gwt.client.

Client's pom sets the module name to 

<moduleName>com.effectiveem.app.gwt.client.EemApp</moduleName>


On Wednesday, July 13, 2022 at 1:53:19 AM UTC-7 t.br...@gmail.com wrote:
On Wednesday, July 13, 2022 at 3:06:37 AM UTC+2 ime...@gmail.com wrote:
Thank you, the setting the <include> did it.

FYI, using a GWTTestSuite can improve performance (that's why it's the default in the plugin, because it favors best practices): https://www.gwtproject.org/doc/latest/DevGuideTesting.html#DevGuideJUnitSuites
 
My next question about testing is, what are the expectations for the test module? Are we still required to provide a separate JUnit.gwt.xml?

You've never been (or at least not for many many years) as GWT will synthesize a module that inherits both com.google.gwt.junit.JUnit and the module your GWTTestCase's getModuleName() returns.
The gwt-maven-plugin itself has no specific expectations either, so https://www.gwtproject.org/doc/latest/DevGuideTesting.html should apply as-is (I haven't re-read it though, but that's the goal of the plugin, to be a "thin" wrapper that only wires things that are specific to Maven, e.g. src/main/java, computing the classpath from dependencies, etc.)


-- 
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-tool...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/64fe3efb-04f5-431a-b8e1-a56d83904246n%40googlegroups.com.

-- 
You received this message because you are subscribed to a topic in the Google Groups "GWT Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/google-web-toolkit/lQkYCgjauEU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to google-web-tool...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/CAFHWztw1Wi7aHnR%2BxnjiZnO1r87d27i1BKfyJWK%2BGHm9mSwMfQ%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit/25eaab85-9477-40aa-b06a-f4fc1f3c2572n%40googlegroups.com.

No comments:

Post a Comment