DocsAdaptersStryker

Stryker Adapter

Quell's Stryker adapter reads from Stryker's JSON mutation report. This lets you use Quell with JavaScript and TypeScript projects that use Stryker for mutation testing.

The Stryker adapter reads Stryker's output and generates pytest tests. This is most useful for full-stack projects where Python backend tests need to cover logic validated by Stryker on the frontend, or for Python projects running Stryker via the Python-mutator.

Setup

# Install Stryker (example: JavaScript)
npm install --save-dev @stryker-mutator/core

# Run Stryker
npx stryker run

Stryker writes its report to reports/mutation/mutation.json by default.

Use Quell with Stryker

quell scan --tool stryker
quell fix --tool stryker
quell ci --tool stryker

Custom report path

If your Stryker report is in a non-default location:

# Override via environment variable
export QUELL_STRYKER_REPORT=custom/path/mutation.json

quell scan --tool stryker

Report format

Quell expects Stryker's standard JSON report format:

{
  "files": {
    "src/payments.js": {
      "mutants": [
        {
          "id": "1",
          "status": "Survived",
          "location": { "start": {"line": 20, "column": 5} },
          "mutatorName": "BoundaryMutation",
          "original": "amount > 0",
          "replacement": "amount >= 0"
        }
      ]
    }
  }
}

Quell maps Stryker's mutatorName values to its internal MutationOperator enum.

Stryker → Quell operator mapping

Stryker mutatorNameQuell operator
BoundaryMutationBOUNDARY_SHIFT
ArithmeticOperatorARITHMETIC_SWAP
LogicalOperatorLOGICAL_SWAP
EqualityOperatorCOMPARISON_FLIP
BlockStatementSTATEMENT_REMOVAL
ConditionalExpressionCONDITION_NEGATE
StringLiteralSTRING_MUTATION
otherUNKNOWN

Stryker configuration

{
  "testRunner": "jest",
  "reporters": ["html", "json"],
  "jsonReporter": {
    "fileName": "reports/mutation/mutation.json"
  }
}