Tests and Sub-Tests

The concept of Sub-Test is an organic way to organize the whole work with Tests in organic way. By having sub-tests one may meet one of the following goals:

  1. Create multiple test scenarios working with same set of Objects and Functions.

  2. Organize different test scenarios into a single workspace.

  3. Use Sub-test to make cross-browser tests.

We will consider each of described goals separately. The test containing the sub-test(s) we will call base or parent test.

Make Multiple Test Scenarios with the Same Set of Objects

In this case parent test contains all learned objects and user-defined functions.


For example, the parent test may have objects "User Name", "Password", "Sign On". And function

function Login(username, password)

SubTest1 may be used to check login with valid Credentials, Main.js from SubTest1 looks like:

function Test()

   Login("validuser", "validpassword");

   // Now check that login is successfull

   Tester.Assert("Login leads to welcome message: ", Global.DoWaitFor('Welcome_User'));


SubTest2 may be used to check login with invalid Credentials (i.e. it is a fail-test). Main.js from SubTest2 looks like:

function Test()

   Login("invaliduser", "invvalidpassword");

   // Now check that login is successfull

   Tester.Assert("Login leads to invalid user object: ", Global.DoWaitFor('Invalid_User'));


Function Login and objects Welcome_User and Invalid_User are defined in Test. The subtests are just implementing various scenarios for the same set of objects.

Organize different tests into a single workspace.

Each test has its own objects, functions and scenarios.


The usage of such an approach is well demonstrated by example. We created a test called SampleMaster and put all Rapise samples into it by using Add File context menu in the the Test Tree dialog. Finally the Files tree looks like:

subtest samplemaster tree

All tests in this tree are independent. We use the Sample Master to manage all the tests from a single environment.

Sub-Test Features

%WORKDIR% and Frameworks

Test and sub-tests is a recommended way to set up test frameworks with Rapise. %WORKDIR% is set to the root test path and it is recommended to use it to refer to other tests or data files.

See sample framework https://github.com/Inflectra/rapise-framework-examples/tree/master/SpiraFriendlyWithRvlAndUserLib