Hi Kevin,

On 20.02.2020 14:03, Kevin Rushforth wrote:
> None of the apps underneath testapp* are "tests", but are rather auxiliary 
> applications that are
> run as apps in a separate process by a test. The test itself must be 
> somewhere under
> tests/system/src/test/java.
>
> For example, the test class ModuleLauncherTest is in 
> tests/system/src/test/java/test/launchertest.
> You probably need to do something similar.

thanks to your information I was able to succeed!

The new modular app needs to be added to
"tests/system/src/test/java/test/launchertest/ModuleLauncherTest.java". To do 
so, one needs (in this
example the modular app is "testapp7" which includes a package named "myapp7" 
which contains the
test "FXMLScriptTest" class):

  * to add (copy and adjust) a private field (a String) in this case named 
"modulePath7" which value
    gets fetched from a System property "launchertest.testapp7.module.path" 
which gets used in the
    test method that needs to be added as well (see next item)

  * then at the end add a new Test method:

    @Test (timeout = 15000)
    private void testModuleFXMLScriptTest() throws Exception {
       doTestLaunchModule(modulePath7, "myapp7.FXMLScriptTest");
    }

To run the modular tests only, one can issue therefore:

    ./gradlew  -PFULL_TEST=true :systemTests:test --tests ModuleLauncherTest

---rony


> On 2/20/2020 1:31 AM, Rony G. Flatscher wrote:
>> Kevin,
>>
>> thank you very much for your information!
>>
>> On 19.02.2020 20:44, Kevin Rushforth wrote:
>>> First, make sure that your test class name ends with exactly the string 
>>> "Test".
>> Renamed the class such that it ends in "Test" ("FXMLScriptTest"), however 
>> this does not cause the
>> class to be loaded from the modular app and its main() method to be run 
>> using "./gradlew
>> -PFULL_TEST=true :systemTests:test".
>>
>> All the "systemTests" modular applications (cf. 
>> "jfx/tests/system/src/testapp{1..6}") do not contain
>> any classes that end in the string "Test"! Rather all the classes that carry 
>> out assertions possess
>> a main() method that controls the execution and the assertions (usually they 
>> extend Application and
>> implement the start() method, in which the test methods get triggered).
>>
>> So that led me to believe that in the case of these system tests the test 
>> runner inspects all
>> classes and if they contain a main() method just executes it and upon return 
>> the launcher inspects
>> the return code to determine whether the system test run of that class was 
>> successful or not.
>>
>> When trying to run test classes individually in the system tests, the 
>> "--tests" filter comes up with
>> an error, e.g. for
>>
>>     ./gradlew -PFULL_TEST=true :systemTests:test --tests FXMLScriptTest
>>
>> or for any other of the already existing system tests, e.g.:
>>
>>     ./gradlew -PFULL_TEST=true :systemTests:test --tests AppFXMLOpened
>>
>> [The above system test class "AppFXMLOpened" is part of the "testapp6" 
>> modular test and located in
>> the package "myapp6". Note, the class name does not end in "Test".]
>>
>> So maybe there is another way to run/launch these system test modular apps 
>> (maybe also
>> individually)?
>>
>> ---rony
>>
>>

Reply via email to