Run tests by using the command line

You can run tests by using the HCL OneTest™ API command line.

The command has two distinct usages: By specifying all the arguments on the command line, and by using a parameter file to specify one or more configurations.

When you run a single configuration (specified by the -environment, -run, and -project arguments), you can specify all the arguments on the command line. An example follows:

RunTests   [-noHTTP] [-noResultsPublishers] [-useResultsPublishers <pub_1>,<pub_2>]
[-noPublishers] [-resultsServerLogging absolute|relative|ignore]
[-overrideSlowFail scenario|on|off] [-projectUser <user>] [-projectPass <password>]
[-loginAsAdmin] [-junitDir <directory>] [-securityToken <token>] [-input <file>]
[-output <file>] [-environmentTags env] -environment <name>
-project <file> -run <res_1>;<res_2>

You can also use a parameter file to specify one or more configurations. An example follows:

RunTests   [-noHTTP] [-noResultsPublishers] [-useResultsPublishers <pub_1>,<pub_2>]
[-resultsServerLogging absolute|relative|ignore] [-securityToken <token>]
-parameterFile <file>
Note: If you are specifying more than one test resource, they must be separated by semicolons and enclosed in quotation marks.

For example:

C:\> "C:\Program Files\HCL\HCLProducts\API\RunTests" 
-useResultsPublishers MyPub,TIB_Pub -resultsServerLogging ignore 
-environment HotelApp -project 
C:\OneTestAPIProjects\HotelApp\HotelApp.ghp -run 
"HotelApp/Airline/booking/MakeBooking/CardType = Visa"
  • When you use the RunTests command, if all resources that are to be run are stubs, they run in parallel. Any other combinations of resources are run serially. To correctly manage running tests in parallel to stubs, test suites must be created and run.
  • If any of the command-line parameters include spaces, they must be enclosed in quotation marks.
  • When you run more that one RunTests command at the same time, you must specify separate workspaces for each process to ensure reliable execution. See the -data option in the following table.
The command-line parameters are described in the following table:
Table 1. Command-line parameters
Parameter Description
-data <folder> Specifies a unique folder name to store workspace files during execution. Use this option when you want to run multiple RunTests instances in parallel. For example,
-data C:\temp\runtestsworkspace1
-environment <name> The name or ID of the HCL OneTest API environment to use when you run the test items.
Note: The internal ID field in the Documentation tab of the environment represents the environment ID that can be used as an alternative for the environment name.

A value of env will result in all OS environment variables being mapped to environment tags, overriding tags of the same name within the project (optional).

When you use the RunTests command with this parameter, all the operating system variables and system environment variables are made available to the test run. Hence, when you run a test by using the command line without -environmentTags env, HCL OneTest API automatically uses the OS environment variables as tags even if you have not defined them in the test project.

Note: If you also specify -input, the properties for that argument take precedence when HCL OneTest API resolves an environment tag value.
-input Path to an input properties file. The properties are converted to Tests Tags. For more information on Test Tags, see The Tag Data Store.
-junitDir Indicates that JUnit reports are generated for all suites that are being run and the reports are placed in the specified folder. The default is to not generate reports. For more information on the format of the output file, see JUnit style output
-junitLegacy Causes the junitDir argument to behave as it did before HCL OneTest API version 8.7.0. This earlier behavior requires junitDir to obtain information from the results database.
-loginAsAdmin Indicates to log in as the Administrator for a secured project. This option requires the admin password to be specified by using the -projectPass parameter.
-noHTTP An optional switch to disable the internal web server.
-noDB Causes test results to not be written to the results database, even when one is configured in the project.
-noResultsPublishers An optional switch to disable any results publishers that can be configured in the project.
-output Allows the list of tags present in the executed test, which were marked with a type of output to be written to the specified file. The contents are structured according to the Java properties file format as used by the -input argument.
-overrideSlowFail Overrides the slow fail setting in the root Scenario for a Suite. The argument has the following values:
Ignore the Scenario setting and run the Suite in slow fail mode.
Ignore the Scenario setting and run the Suite in normal mode.
Do not override the Scenario setting.
The default is SCENARIO.
-project <file> The full path to the HCL OneTest API project file <file> that contains the specified environment and test resources.
-parameterFile <file> The full path to a parameter file that contains run arguments for one or more resources. For more information, see Using the parameter file.
-projectPass The password for a secured project.
-projectUser The user name for a secured project.
-resultsServerLogging absolute|relative|ignore Specifies how the Results Server URL is written to the console when tests complete. The argument has the following values:
The report URL is not written to the console.
The full URL is written to the console.
A URL relative to the current Results Server location for the project is written to the console.
The default value is absolute.
-run <res_1>;<res_2> One or more resources to be run, separated with a semicolon. A resource can be specified by any part of its name, which uniquely identifies it. You can also specify the internal resource ID instead of resource name.
Note: The internal resource ID field in the Documentation tab of the resource represents the resource ID that can be used as an alternative for the resource name.
-securityToken <token> Security token for authentication when domain security is enabled (optional). For more information, see Domain level security.
-useResultsPublishers <pub_1>,<pub_2> One or more results publishers to be enabled for publishing. Each publisher is designated by the name that it was given when created in HCL OneTest API. Multiple publishers must be separated by commas.

Override secrets namespace defined by the environment.

when you use the RunTests command with this parameter, the secrets collection names defined by the environment is overridden and the secrets defined in the project secrets collection on HCL OneTest Server is retrieved.

For more information, see Accessing HCL OneTest Server from IntegrationTesterCmd, ANT CLI, Maven CLI, or in a REST API call.

Using the parameter file

You can set the project, environment, and run arguments in a parameter file, which you specify by using the parameterFile argument.

You can specify the run arguments for one or more test resources, which are grouped by project and separated by a semicolon. As an example, consider a file that is named myparams.txt that has the following contents:

-project C:\Projects\AETesting\myproj.ghp -environment Env1 -run "creditTest1";"creditTest2";
-project C:\Projects\BWTesting\myproj.ghp -environment HotelApp -run "bookVisa;bookMaestro;reg Suite1;reg Suite2";

You can use the parameter file in the RunTests command, as follows:

RunTests -noHTTP -resultsServerLogging ignore -parameterFile C:\IntegrationTesterTests\myparams.txt

In the example file, the command runs the following resources:

  • In the AETesting project, creditTest1 resources are run followed by creditTest2, and both are run in the Env1 environment.
  • Next, in the BWTesting project and by using the HotelApp environment, bookVisa, bookMaestro, reg Suite1, and reg Suite2 resources are run (in that order).
Note: A final trailing semicolon is used in the parameter file to close the list of artifacts to run.

Checking the test status

After you run the script, you can check the test status by running the following commands:
  • On Windows systems, echo %errorlevel%
  • On systems other than Windows, echo $?
The return code 0 indicates that the test passed and 1 indicates that the test failed.