Concordia Language Compiler
raw JSON → 2.0.0-alpha.20 verified Fri May 01 auth: no javascript
Concordia Language Compiler (concordialang) is a CLI tool for acceptance testing driven by natural language specifications. It compiles Gherkin-like feature files into executable test scripts using pluggable test frameworks (e.g., CodeceptJS, Playwright). Version 2.0.0-alpha.20 is the latest alpha, released sporadically with incremental features like multi-package-manager support (npm, yarn, pnpm), plugin updates, and XPath support. Differentiators: test-framework-agnostic plugin architecture, built-in report generation, and focus on BDD/ATDD workflows with support for actions like 'accept alert'.
Common errors
error Error: Cannot find module 'commander' ↓
cause Missing commander dependency, or incorrect install.
fix
Run 'npm install concordialang' which includes commander as a dependency.
error SyntaxError: Unexpected token 'export' ↓
cause Using require() on an ESM-only package.
fix
Use ES import syntax, or switch to CJS build if available.
error Plugin 'concordialang-plugin-codeceptjs' not found. ↓
cause Plugin not installed or name misspelled.
fix
Install plugin: npm install concordialang-plugin-codeceptjs
Warnings
breaking Plugin structure changed in v2.0.0-alpha.19, breaking compatibility with older plugins. ↓
fix Update plugins to new structure; see concordialang-fake-plugin for example.
breaking ESM-only since v2.0.0-alpha.14; CommonJS require() not supported. ↓
fix Use ES import syntax: import { compile } from 'concordialang'
deprecated --init option behavior changed; now creates output directory. ↓
fix Review generated folder structure; output dir is now automatically created.
deprecated Version 2.0.0-alpha.20 is alpha; APIs unstable. ↓
fix Pin exact version in package.json and test thoroughly.
gotcha Plugin version must match Concordia major version; v2 plugins incompatible with v1. ↓
fix Use plugins marked for Concordia 2.
Install
npm install concordialang yarn add concordialang pnpm add concordialang Imports
- default wrong
const concordia = require('concordialang')correctimport { compile } from 'concordialang' - compile wrong
const { compile } = require('concordialang')correctimport { compile } from 'concordialang' - type definitions wrong
const { ConcordiaConfig } = require('concordialang')correctimport type { ConcordiaConfig } from 'concordialang'
Quickstart
// Install the compiler and a plugin
npm install concordialang
npm install concordialang-plugin-codeceptjs
// Create a feature file 'hello.feature'
// Feature: Hello
// Scenario: Say hello
// Given I have a browser
// When I go to "about:blank"
// Then I see the page title is ""
// Compile and run
npx concordia compile hello.feature --plugin=codeceptjs --runner=webdriverio