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/0ed90f4e-d908-423d-83b7-c0b8b87bbb4an%40googlegroups.com.