Skip to content

Command Line Interface


CLI

INGenious has a rich set of command line options for execution with parameters, retrieving execution details, setting variables, change settings etc.

CLI Options (Modern)

Run

Use ingenious run to run from the CLI. You can append --help to the commands below to display usage.

Options
Output
testcase Run a specific test case
testset Run a specific test set
tags Run tests with matching tags
rerun Rerun failed tests from last execution

The run command also supports auto-detection — you can pass a path directly and it detects whether it is a test case or test set:

ingenious run <Project>/<Scenario>/<TestCase>
ingenious run <Project>/<Release>/<TestSet>

Single Test Case Execution

ingenious run Demo\NewScenario\NewTestCase --browser Chromium
./ingenious.command run Demo/NewScenario/NewTestCase --browser Chromium

The modern run command auto-detects whether the path refers to a test case or a test set. The above is equivalent to the explicit:

ingenious run testcase --project "Projects\Demo" --scenario NewScenario --testcase NewTestCase --browser Chromium
./ingenious.command run testcase --project "Projects/Demo" --scenario NewScenario --testcase NewTestCase --browser Chromium

Test Set Execution

ingenious run Demo\NewRelease\NewTestSet
./ingenious.command run Demo/NewRelease/NewTestSet

Or explicitly:

ingenious run testset --project "Projects\Demo" --release NewRelease --testset NewTestSet
./ingenious.command run testset --project "Projects/Demo" --release NewRelease --testset NewTestSet

Test Set Execution with specific tags

ingenious run Demo\NewRelease\NewTestSet --tags @smoke
./ingenious.command run Demo/NewRelease/NewTestSet --tags @smoke

Or explicitly:

ingenious run testset --project "Projects\Demo" --release NewRelease --testset NewTestSet --tags @smoke
./ingenious.command run testset --project "Projects/Demo" --release NewRelease --testset NewTestSet --tags @smoke

Test Set Execution with Updated Environment Settings

ingenious run Demo\NewRelease\NewTestSet --set-env "run.TestEnv=Acceptance"
./ingenious.command run Demo/NewRelease/NewTestSet --set-env "run.TestEnv=Acceptance"

In the above example, the test set will be forced to be executed on Acceptance Environment.


Rerun Failed Tests

ingenious run Demo\NewRelease\NewTestSet --rerun
./ingenious.command run Demo/NewRelease/NewTestSet --rerun

Re-executes only the test cases that failed in the last run of the given target.


Headless Execution

ingenious run Demo\NewScenario\NewTestCase --browser Chromium --headless
./ingenious.command run Demo/NewScenario/NewTestCase --browser Chromium --headless

Parallel Test Set Execution

ingenious run Demo\NewRelease\NewTestSet --parallel 4
./ingenious.command run Demo/NewRelease/NewTestSet --parallel 4

Runs the test set across 4 parallel threads.


Project Management

Use ingenious project to use project management commands. You can append --help to the command to display possible commands.

Options
Output
list List all projects in a directory
info Show project information
validate Show a health dashboard for the project
create Create a new project
upgrade Interactive upgrade wizard: modernise ORs, test cases, and clean up legacy files
ingenious project list
./ingenious.command project list

List projects in a specific directory:

ingenious project list "Projects"
./ingenious.command project list "Projects"

Show project information:

ingenious project info Demo
./ingenious.command project info Demo

Validate project health:

ingenious project validate Demo
./ingenious.command project validate Demo

Create a new project:

ingenious project create NewProject --directory "Projects"
./ingenious.command project create NewProject --directory "Projects"

Upgrade Wizard

ingenious project upgrade Demo
./ingenious.command project upgrade Demo

Automatically accept all defaults:

ingenious project upgrade Demo --yes
./ingenious.command project upgrade Demo --yes

Preview changes without modifying files:

ingenious project upgrade Demo --dry-run
./ingenious.command project upgrade Demo --dry-run

The upgrade wizard walks through:

  1. Test Data Migration — adds the Scope field to test datasheets
  2. Object Repository Conversion — converts XML ORs to YAML
  3. Test Case Migration — converts CSV test cases to YAML
  4. Deprecated File Cleanup — removes legacy XML stubs
  5. Reusable Relocation — moves mislocated reusables to ReusableComponents/

Configuration Management

Use ingenious config to use configuration management commands. You can append --help to the command to display possible commands.

Options
Output
show Show all configuration settings
get Get a configuration value
set Set a configuration value
drivers Manage browser drivers
reset Reset configuration to defaults
prefixes List all recognised -setEnv / set-env override prefixes

Show all configuration:

ingenious config show --project "Projects\Demo"
./ingenious.command config show --project "Projects/Demo"

Get a specific value:

ingenious config get browser --project "Projects\Demo"
./ingenious.command config get browser --project "Projects/Demo"

Set a value:

ingenious config set timeout 60 --project "Projects\Demo"
./ingenious.command config set timeout 60 --project "Projects/Demo"

List all recognised override prefixes:

ingenious config prefixes
./ingenious.command config prefixes

Check browser drivers:

ingenious config drivers --check
./ingenious.command config drivers --check

Report Management

Use ingenious report to use report management commands. You can append --help to the command to display possible commands.

Options
Output
latest Show latest test execution results
history Show test execution history
show Show details of a specific run
export Export report in various formats
compare Compare two test runs

Show latest execution results:

ingenious report latest --project "Projects\Demo"
./ingenious.command report latest --project "Projects/Demo"

Show test execution history (last 10 runs):

ingenious report history --project "Projects\Demo"
./ingenious.command report history --project "Projects/Demo"

Show details of a specific run:

ingenious report show Run_2024_01_15_10_30_00 --project "Projects\Demo"
./ingenious.command report show Run_2024_01_15_10_30_00 --project "Projects/Demo"

Export report to JSON:

ingenious report export --project "Projects\Demo" --format json --output report.json
./ingenious.command report export --project "Projects/Demo" --format json --output report.json

Compare two runs:

ingenious report compare Run_2024_01_15_10_30_00 Run_2024_01_16_14_00_00 --project "Projects\Demo"
./ingenious.command report compare Run_2024_01_15_10_30_00 Run_2024_01_16_14_00_00 --project "Projects/Demo"

Shell Session

Use ingenious shell to use shell commands. You can append --help to the command to display usage.

ingenious shell
./ingenious.command shell

Start with a pre-set project:

ingenious shell --project "Projects\Demo"
./ingenious.command shell --project "Projects/Demo"

Inside the shell you can use shorter commands like run Login/Smoke, scenario list, config show, etc.


Modern Override Settings

The modern CLI provides typed override flags as a more ergonomic alternative to -setEnv. These are available on all ingenious run … subcommands and accept key=value pairs for their respective bucket.

Flag Bucket Example
--set-env Raw pass-through --set-env "run.var=value"
--driver Driver / Launch Configurations --driver "RemoteURL=http://hub:4444"
--user User Defined Settings --user "Key1=NewValue1"
--tm Test Management Settings --tm "ProjectKey=DEMO"
--capability Per-browser capability --capability "Chrome.headless=true"
--db Database properties --db "mydb.ConnectionString=server=..."
--context Browser Context --context "test.password=secret"
--api API properties --api "myapi.BaseURL=https://api.example.com"
--kafka-ssl Kafka SSL Config --kafka-ssl "Producer_Key_Password=P@ssw0rd"
--lambdatest-cap LambdaTest Grid Capabilities --lambdatest-cap "build=ci-1234"
--browser-arg Per-browser launch flag --browser-arg "Chrome.1=--headless=new"
--browser-set Per-browser property --browser-set "Chrome.mySetting=value"
--device Per-device override --device "Pixel5.RemoteURL=http://hub:4723"
--tm-module AzureDevOps TestPlan module --tm-module "AzureDO.__enabled=true"

Examples using typed overrides:

ingenious run Demo\NewRelease\NewTestSet --capability "Chromium.headless=true" --user "TestEnv=Acceptance"
./ingenious.command run Demo/NewRelease/NewTestSet --capability "Chromium.headless=true" --user "TestEnv=Acceptance"

Multiple overrides can be combined:

ingenious run Demo\NewRelease\NewTestSet --device "Pixel5.RemoteURL=http://hub:4723" --tm-module "AzureDO.__enabled=true" --lambdatest-cap "build=ci-5678"
./ingenious.command run Demo/NewRelease/NewTestSet --device "Pixel5.RemoteURL=http://hub:4723" --tm-module "AzureDO.__enabled=true" --lambdatest-cap "build=ci-5678"

Find all recognised prefix names at any time with:

ingenious config prefixes
./ingenious.command config prefixes

Examples (Modern)

Version Information

ingenious --version
./ingenious.command --version

Action Discovery

List all available Browser actions:

ingenious action list Browser
./ingenious.command action list Browser

Search for actions by keyword:

ingenious action search click
./ingenious.command action search click

Show detailed action information:

ingenious action info Click
./ingenious.command action info Click

List action categories with counts:

ingenious action categories
./ingenious.command action categories

CLI Options (Legacy)

Options
Output
-v,-version Display current build details
-run Run with the given details
-rerun Rerun the last execution
-project_location Project Location for Execution
-scenario Scenario Name
-testcase Testcase Name
-browser Browser Name (Not applicable for Testset Execution)
-release Release Name
-testset Testset Name
-tags Tags of Test Cases to be exceuted
-bDate Display current build date
-bTime Display current build time
-bVersion Display current build version
-dont_launch_report Disables launching summary report after execution
-help Help
-hi Says Hello!
-t Display Current Time
-latest_exe Returns the given property value for the latest execution
-latest_exe_loc Returns the results folder for the latest execution
-latest_exe_status Returns the status for the latest execution
-latest_exe_data_loc Returns the Report data location for the latest execution
-latest_exe_data_raw Returns the Report data for the latest execution
-latest_exe_log_loc Returns the log file location for the latest execution
-latest_exe_log_raw Returns the log file for the latest execution
-latest_exe_perf_status Returns the page load performance results for latest execution
-latest_exe_perf_report Returns the page load performance report for latest execution
-checkPagePerf Returns the page load performance results after Run
-setVar Create/Set user defined variable [-setVar "var=value"]
-setEnv Create/Set Env settings
-standalone_report Create Standalone Report instead of Relative one

Legacy Override Settings

-setEnv is a very powerful command to override all the environment settings and userdefined variables. This can override the values in all of these settings :

settings

Lets look at the Run Settings for a Test Set. If we enter into the project location and navigate to the following location :

Settings\TestExecution\<ReleaseName>\<TestSetName>

We will find the RunSettings.Properties and the TestMgmtSettings.Properties files.

The RunSettings.Properties holds all the corresponding settings that we enter via the UI of the framework.

runsettings

Any of these properties can be overriden by -setEnv.

For Example: -setEnv "run.TakeFullPageScreenShot=False"

Similarly, if we go to the project location and navigate to Settings\ directory, the userDefinedSettings.Properties holds all the corresponding data that we enter via the UI of the framework.

usersettings

We can use by -setEnv to override these values too.

For Example: -setEnv "user.Key1=NewValue1"

Similarly, if we go to the project location and navigate to Settings\ directory, the KafkaSSLConfigurations.Properties holds all the corresponding data that we enter via the UI of the framework.

kafkasettings

We can use by -setEnv to override these values too.

For Example: -setEnv "kafkaSSl.Producer_Key_Password=P@ssw0rd"

For the following settings, -setEnv can be used as follows :

Settings option
Global Settings -setEnv "exe.SettingName=Value"
Run Settings -setEnv "run.SettingName=Value"
User Defined Settings -setEnv "user.SettingName=Value"
Kafka SSL Configurations -setEnv "kafkaSSl.SettingName=Value"
Driver Settings -setEnv "driver.SettingName=Value"
Test Management Settings -setEnv "tm.SettingName=Value"
Browser Capability Settings -setEnv "capability.browserName.SettingName=Value"
Browser Context Settings -setEnv "context.aliasName.SettingName=Value"
Database Settings -setEnv "'db.aliasName.SettingName=Value"
API Settings -setEnv "'api.aliasName.SettingName=Value"

NOTE: These prefixes can also be shown in the console with command 'config prefixes'

Examples :

-setEnv "capability.chromium.setheadless=false"` 
-setEnv "context.test.password=Value"

Multiple settings can be altered via a single command as well :

-setEnv "run.var=value;exe.var=value;user.var=value"

Examples (Legacy)

Single Test Case Execution

ingenious.bat -run -project_location "Projects\Demo" -scenario "NewScenario" -testcase "NewTestCase" -browser "Chrome"
./ingenious.command -run -project_location "Projects\Demo" -scenario "NewScenario" -testcase "NewTestCase" -browser "Chrome"

Test Set Execution

ingenious.bat -run -project_location "Projects\Demo" -release "NewRelease" -testset "NewTestSet"
./ingenious.command -run -project_location "Projects\Demo" -release "NewRelease" -testset "NewTestSet"

Test Set Execution with specific tags

ingenious.bat -run -project_location "Projects\Demo" -release "NewRelease" -testset "NewTestSet" -tags "@smoke"
./ingenious.command -run -project_location "Projects\Demo" -release "NewRelease" -testset "NewTestSet" -tags "@smoke"

Test Set Execution with Updated Environment Settings

ingenious.bat -run -project_location "Projects\Demo" -release "NewRelease" -testset "NewTestSet" -setEnv "run.TestEnv=Acceptance"
./ingenious.command -run -project_location "Projects\Demo" -release "NewRelease" -testset "NewTestSet" -setEnv "run.TestEnv=Acceptance"

In the above example, the test set will be forced to be executed on Acceptance Environment