Dependency: GWTTestCase brings in net.sourceforge.htmlunit which brings 
in javax.servlet-api.

On Tuesday, 20 May 2025 at 10:25:12 am UTC+10 Craig Mitchell wrote:

> 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/a3af39bc-6843-4148-baee-09b00e558500n%40googlegroups.com.

Reply via email to