I think GWTTestCase uses HtmlUnit ( https://htmlunit.sourceforge.io/ ), so it doesn't need an embedded server running.
Having said that, it looks like something still brings in the old javax.servlet-api, so GWTTestCase can still use it. But my webserver still uses the new jakarta.servlet-api: [image: Screenshot 2025-05-20 102243.png] On Tuesday, 20 May 2025 at 4:47:02 am UTC+10 Radek wrote: > Thank you for the reply - although I’m still a bit confused. You’re > running GWTTestCase on an embedded server, right? As far as I understand, > JUnitShell.java:1123 calls asSubclass(javax.servlet.Servlet.class), so it > shouldn’t work with the Jakarta servlet API - > https://github.com/gwtproject/gwt/blob/main/user/src/com/google/gwt/junit/JUnitShell.java#L1123. > > Are you starting Jetty (or another servlet container) yourself in your > tests so that GWT servlets run there? Or are you not actually send GWT RPC > in your GWTTestCase? > > Regards, > Radek > > On Monday, May 19, 2025 at 1:34:31 AM UTC+2 Craig Mitchell wrote: > >> I'm using gwt-servlet-jakarta and GWTTestCase worked fine. I don't >> think GWTTestCase has anything to do with which web server you use. >> >> It does use JUnit 4 though. It won't work with JUnit 5. >> >> On Monday, 19 May 2025 at 9:15:30 am UTC+10 Radek wrote: >> >>> Hi, >>> >>> Could you confirm that GWTTestCase only works if you’re still using the >>> old javax.servlet API? It no longer works once you’ve migrated to Jakarta >>> (e.g. Tomcat 10), right? >>> >>> Regards, >>> Radek >>> On Monday, May 12, 2025 at 3:32:52 PM UTC+2 Craig Mitchell wrote: >>> >>>> Thank you Thomas! The testArgs config worked perfectly. >>>> >>>> On Monday, 12 May 2025 at 5:41:37 pm UTC+10 Thomas Broyer wrote: >>>> >>>>> Use the gwt.args system property to pass arguments to GWT's >>>>> JUnitShell: >>>>> https://www.gwtproject.org/doc/latest/DevGuideTesting.html#passingTestArguments >>>>> >>>>> / >>>>> https://maven.apache.org/surefire/maven-surefire-plugin/examples/system-properties.html >>>>> <systemPropertyVariables> >>>>> <gwt.args>-testMethodTimeout 10</gwt.args> >>>>> </systemPropertyVariables> >>>>> >>>>> But with my maven plugin, you can also "just" use <testArgs> in the >>>>> plugin configuration: >>>>> https://tbroyer.github.io/gwt-maven-plugin/test-mojo.html#testArgs >>>>> <testArgs> >>>>> <arg>-testMethodTimeout</arg><arg>10</arg> >>>>> </testArgs> >>>>> >>>>> On Sunday, May 11, 2025 at 6:29:29 AM UTC+2 [email protected] >>>>> wrote: >>>>> >>>>>> If it helps, this is where it's setting the default timeout of 5 >>>>>> minutes: >>>>>> https://github.com/gwtproject/gwt/blob/main/user/src/com/google/gwt/junit/JUnitShell.java#L318 >>>>>> >>>>>> I'm just stuck on how to override it. >>>>>> >>>>>> Also, if I run mvn clean install gwt:test -pl *-client that seems >>>>>> to run the tests (but it's easier to type mvn package 🙂) >>>>>> >>>>>> On Saturday, 10 May 2025 at 5:24:37 pm UTC+10 Craig Mitchell wrote: >>>>>> >>>>>>> (Sorry for the spamming) Now I am able to run my tests, I see they >>>>>>> are rather slow, and they timeout with the message "Try increasing >>>>>>> this timeout using the '-testMethodTimeout minutes' option". >>>>>>> >>>>>>> I'm running in Maven and trying to add this argument. I've tried >>>>>>> putting it in the POM: >>>>>>> <gwt.testMethodTimeout>10</gwt.testMethodTimeout> >>>>>>> >>>>>>> Also via the command line: >>>>>>> mvn package "-DtestMethodTimeout=10" >>>>>>> mvn package "-DtestMethodTimeout 10" >>>>>>> >>>>>>> It just keeps using the default of 5 minutes. Any idea how to set >>>>>>> the timeout? >>>>>>> >>>>>>> On Saturday, 10 May 2025 at 4:58:07 pm UTC+10 Craig Mitchell wrote: >>>>>>> >>>>>>>> Apologies. Doing a mvn package does work. The tests run >>>>>>>> successfully. Doing a mvn test does not work (gives the "*No >>>>>>>> source code is available for type test.craig.FieldVerifier; did you >>>>>>>> forget >>>>>>>> to inherit a required module?"*" error). >>>>>>>> >>>>>>>> On Saturday, 10 May 2025 at 4:51:35 pm UTC+10 Craig Mitchell wrote: >>>>>>>> >>>>>>>>> Some extra (strange) behaviours: >>>>>>>>> >>>>>>>>> Creating a class in the client module: >>>>>>>>> public class FieldVerifierOverride extends FieldVerifier { } >>>>>>>>> >>>>>>>>> And then calling the test with this class: >>>>>>>>> assertTrue( FieldVerifierOverride.isValidName("hi") ); >>>>>>>>> >>>>>>>>> Gives a different error: >>>>>>>>> [ERROR] Could not find test.craig.FieldVerifier in types compiled >>>>>>>>> from source. Is the source glob too strict? >>>>>>>>> >>>>>>>>> Also, if I run mvn package (instead of mvn test), then the test >>>>>>>>> actally runs, but FieldVerifier.isValidName("hi") returns false >>>>>>>>> (it should return true): >>>>>>>>> [ERROR] test.craig.MyTests.testSimple -- Time elapsed: 8.016 s >>>>>>>>> <<< FAILURE! >>>>>>>>> junit.framework.AssertionFailedError: expected: <true>, actual: >>>>>>>>> <false> >>>>>>>>> >>>>>>>>> On Saturday, 10 May 2025 at 12:01:52 pm UTC+10 Craig Mitchell >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> In the GWTTestCase client tests, if I want to test code that's in >>>>>>>>>> the shared module. Eg: >>>>>>>>>> >>>>>>>>>> assertTrue( FieldVerifier.isValidName("hi") ); >>>>>>>>>> >>>>>>>>>> I get the error: >>>>>>>>>> [ERROR] Line 13: No source code is available for type >>>>>>>>>> test.craig.FieldVerifier; did you forget to inherit a required >>>>>>>>>> module? >>>>>>>>>> >>>>>>>>>> How can I inherit the shared module for the GWTTestCase tests? >>>>>>>>>> >>>>>>>>>> On Monday, 28 April 2025 at 9:26:13 am UTC+10 Craig Mitchell >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Thanks Colin. I wasn't aware of the "Suite" naming convention. >>>>>>>>>>> >>>>>>>>>>> So, to summarise. Either: >>>>>>>>>>> - Put "Suite" or "SuiteNoBrowser" at the end of the test class >>>>>>>>>>> name, or >>>>>>>>>>> - Add the test class directly as an include in the client >>>>>>>>>>> pom.xml, in the gwt-maven-plugin. >>>>>>>>>>> >>>>>>>>>>> Now working great! >>>>>>>>>>> >>>>>>>>>>> On Sunday, 27 April 2025 at 10:30:10 pm UTC+10 Colin Alworth >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> When using maven, running from the command line should be "mvn >>>>>>>>>>>> test". With the plugin you are using, it is assumed you are using >>>>>>>>>>>> a test >>>>>>>>>>>> suite - this is not required, but scales better. If you only need >>>>>>>>>>>> to run a >>>>>>>>>>>> single test, you can modify this includes. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> https://tbroyer.github.io/gwt-maven-plugin/test-mojo.html#includes >>>>>>>>>>>> >>>>>>>>>>>> For example in your project with MyTests (note: that wouldn't >>>>>>>>>>>> run even in a non-gwt project from maven, the default pattern is >>>>>>>>>>>> *Test), >>>>>>>>>>>> you could add this: >>>>>>>>>>>> <includes> >>>>>>>>>>>> <include>test/craig/MyTests.java</include> >>>>>>>>>>>> </includes> >>>>>>>>>>>> >>>>>>>>>>>> When I do that, having built the sample as you describe, the >>>>>>>>>>>> tests passes with mvn test: >>>>>>>>>>>> [INFO] ------------------------------------------------------- >>>>>>>>>>>> [INFO] T E S T S >>>>>>>>>>>> [INFO] ------------------------------------------------------- >>>>>>>>>>>> [INFO] Running test.craig.MyTests >>>>>>>>>>>> [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time >>>>>>>>>>>> elapsed: 13.96 s -- in test.craig.MyTests >>>>>>>>>>>> [INFO] >>>>>>>>>>>> [INFO] Results: >>>>>>>>>>>> [INFO] >>>>>>>>>>>> [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 >>>>>>>>>>>> >>>>>>>>>>>> When running from IJ, it doesnt automatically add sources to >>>>>>>>>>>> the classpath as gwt:test does, so you may just want to call the >>>>>>>>>>>> maven goal >>>>>>>>>>>> directly instead. I recall that it is possible to configure >>>>>>>>>>>> Maven/IJ to run >>>>>>>>>>>> tests "normally", but can't quickly spot what that would be. >>>>>>>>>>>> >>>>>>>>>>>> On Sunday, April 27, 2025 at 12:18:17 AM UTC-5 >>>>>>>>>>>> [email protected] wrote: >>>>>>>>>>>> >>>>>>>>>>>>> When running from the command line, I forgot to add all the >>>>>>>>>>>>> items to the class path. Once I did that, I got the same error >>>>>>>>>>>>> IntelliJ >>>>>>>>>>>>> did: >>>>>>>>>>>>> >>>>>>>>>>>>> There was 1 error: >>>>>>>>>>>>> 1) >>>>>>>>>>>>> testSimple(test.craig.MyTests)com.google.gwt.junit.JUnitFatalLaunchException: >>>>>>>>>>>>> >>>>>>>>>>>>> The test class 'test.craig.MyTests' was not found in module ' >>>>>>>>>>>>> test.craig.App'; no compilation unit for that type was seen >>>>>>>>>>>>> at >>>>>>>>>>>>> com.google.gwt.junit.JUnitShell.checkTestClassInCurrentModule(JUnitShell.java:741) >>>>>>>>>>>>> at >>>>>>>>>>>>> com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1360) >>>>>>>>>>>>> at >>>>>>>>>>>>> com.google.gwt.junit.JUnitShell.runTestImpl(JUnitShell.java:1316) >>>>>>>>>>>>> at >>>>>>>>>>>>> com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:679) >>>>>>>>>>>>> at >>>>>>>>>>>>> com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:421) >>>>>>>>>>>>> at >>>>>>>>>>>>> com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:247) >>>>>>>>>>>>> >>>>>>>>>>>>> FAILURES!!! >>>>>>>>>>>>> Tests run: 1, Failures: 0, Errors: 1 >>>>>>>>>>>>> >>>>>>>>>>>>> On Sunday, 27 April 2025 at 2:54:36 pm UTC+10 Craig Mitchell >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> I created a demo project with >>>>>>>>>>>>>> https://github.com/NaluKit/gwt-maven-springboot-archetype >>>>>>>>>>>>>> with the params: >>>>>>>>>>>>>> - modular-springboot-webapp >>>>>>>>>>>>>> - groupId: test.craig >>>>>>>>>>>>>> - artifactId: testing >>>>>>>>>>>>>> - module-short-name app: tc >>>>>>>>>>>>>> >>>>>>>>>>>>>> Added JUnit to the client pom: >>>>>>>>>>>>>> <dependency> >>>>>>>>>>>>>> <groupId>junit</groupId> >>>>>>>>>>>>>> <artifactId>junit</artifactId> >>>>>>>>>>>>>> <version>4.13.2</version> >>>>>>>>>>>>>> <scope>test</scope> >>>>>>>>>>>>>> </dependency> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Created a simple test in the client module (in >>>>>>>>>>>>>> src/test/java/test/craig/MyTests.java): >>>>>>>>>>>>>> public class MyTests extends GWTTestCase { >>>>>>>>>>>>>> @Override >>>>>>>>>>>>>> public String getModuleName() { >>>>>>>>>>>>>> return "test.craig.App"; >>>>>>>>>>>>>> } >>>>>>>>>>>>>> public void testSimple() { >>>>>>>>>>>>>> assertTrue( true ); >>>>>>>>>>>>>> } >>>>>>>>>>>>>> } >>>>>>>>>>>>>> >>>>>>>>>>>>>> Tried to run it in IntelliJ, but got the error: >>>>>>>>>>>>>> com.google.gwt.junit.JUnitFatalLaunchException: The test >>>>>>>>>>>>>> class 'test.craig.MyTests' was not found in module ' >>>>>>>>>>>>>> test.craig.App'; no compilation unit for that type was seen >>>>>>>>>>>>>> >>>>>>>>>>>>>> Tried to compile and run it from the command line: >>>>>>>>>>>>>> java junit.textui.TestRunner test.craig.MyTests >>>>>>>>>>>>>> >>>>>>>>>>>>>> But that returned: >>>>>>>>>>>>>> Error: Could not find or load main class >>>>>>>>>>>>>> junit.textui.TestRunner >>>>>>>>>>>>>> Caused by: java.lang.ClassNotFoundException: >>>>>>>>>>>>>> junit.textui.TestRunner >>>>>>>>>>>>>> >>>>>>>>>>>>>> I thought I was following the instructions in >>>>>>>>>>>>>> https://www.gwtproject.org/doc/latest/DevGuideTesting.html >>>>>>>>>>>>>> but obviously doing something wrong. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Any help is much appreciated. >>>>>>>>>>>>>> >>>>>>>>>>>>> -- 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 [email protected]. To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/0eca973a-9054-4893-a8fa-c8d9e2b49e8fn%40googlegroups.com.
