Using a Plug-in

Concordia Compiler uses plug-ins for:

  1. setting the testing environment up;

  2. generating and executing test scripts;

  3. converting and reporting test results.

Every plug-in can generate test scripts for a different testing framework or programming language.


Name (concordialang-...)

Target platform

Needs Java?









Yes, Java 8+


Android, iOS, Windows

It depends**



  • (*) RTS means "Requires a Testing Server", that is, if it requires a testing server to run the test scripts (e.g., Selenium Standalone).

  • (**) Appium requires Java for testing web-based mobile applications or using the Android SDK.

  • codeceptjs-testcafe uses the frameworks CodeceptJS and TestCafé, and works with probably any browser.

  • codeceptjs-playwright uses the frameworks CodeceptJS and Playwright,

    requires Node 10.14 or above, and works with Chromium, Firefox, and Safari.

  • codeceptjs-webdriverio uses the frameworks CodeceptJS and WebDriverIO, and works with Chrome, Firefox, IE, and Edge.

  • codeceptjs-appium uses the frameworks CodeceptJS and Appium, and requires some additional configuration to work.

  • codeceptjs-testcafe and codeceptjs-playwright are only available for Concordia Compiler 2 or above.


Use --plugin-install plus the plug-in name. Example:

npx concordia --plugin-install codeceptjs-testcafe

You can also use NPM for installing a plug-in. In this case, you must prefix the plug-in name withconcordialang- . Example: npm install -D concordialang-codeceptjs-testcafe.


Just uninstall the plug-in and then install it again. Example:

npx concordia --plugin-uninstall codeceptjs-playwright
npx concordia --plugin-install codeceptjs-playwright 

How to use a plug-in

Concordia has the following plug-in commands:

  • plugin-install to install a plug-in

  • plugin-uninstallto uninstall a plug-in

  • plugin-serve to start a testing server using the plug-in

  • plugin to use a plug-in

  • plugin-info to show information about a plug-in

  • plugin-list to list installed plug-ins

All but the latter command (plugin-list) require a plug-in name.

👉 Whether you have a configuration file with the property plugin defined, you can omit the plugin name from a command. Example:

  "plugin": "codeceptjs-playwright"

Commonly used commands

You can omit the argument <plugin> if you have a configuration file with the property "plugin" defined.

Starting a testing server

Some plug-ins (WebDriverIO, Appium) require a testing server to execute test scripts. A testing server controls a browser or an emulator during tests.

We recommend to open a new terminal/console and then start the testing server:

npx concordia --plugin-serve <plugin>

Naturally, you must replace <plugin> with the plugin name.

The testing server will remain open. To stop it later, type Ctrl + C.

Generating and executing test scripts

Whether your plug-in needs a testing server, start it beforehand.

npx concordia --plugin <plugin>

Generating test scripts without executing them

You can use --no-run to avoid running test scripts and use --no-result to avoid reading the last report with test results. Test scripts will be generated but not executed.

npx concordia --plugin <plugin> --no-run --no-result

Executing existing test scripts (without generating them)

You can use --no-script to avoid generating test scripts. Only existing test scripts will be executed.

npx concordia --plugin <plugin> --no-script

See also

Last updated