Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Plsql Test

БесплатноНе проверен

MCP server for IFS Cloud PL/SQL unit testing, enabling check of testability, generation of unit tests, and orchestration of deploy/run steps via ifs-f1-codegen-

GitHubEmbed

Описание

MCP server for IFS Cloud PL/SQL unit testing, enabling check of testability, generation of unit tests, and orchestration of deploy/run steps via ifs-f1-codegen-dev.

README

MCP server for IFS Cloud PL/SQL unit testing — mirrors the architecture of integration-testing-mcp and delegates deploy/run steps to ifs-f1-codegen-dev.

Develop MCP to identify if a function/procedure is unit testable and generate the test.

Workflow

flowchart TD
    A[checkUnitTestability] --> B{Testable?}
    B -->|No| C[annotateIgnoreUnitTest]
    B -->|Yes| D[generateUnitTest]
    D --> E[generate_code / generate_and_deploy via ifs-f1-codegen-dev]
    E --> F[Verify test passes]
    C --> E

Tools

Tool Description
checkUnitTestability Parse .plsql/.plsvc and assess pltst testability
annotateIgnoreUnitTest Add @IgnoreUnitTest <reason> before a method
generateUnitTest Analyze method body, generate deploy-safe mocks, data-driven FOR loops, and assertions
processUnitTestCoverage Batch: annotate all non-testable methods + generate all missing auto-safe tests for one file
runUnitTest Return generate_and_deploy instructions for ifs-f1-codegen-dev
runPlsqlTestWorkflow End-to-end: check → annotate OR generate → run prep
getIgnoreUnitTestRules List supported ignore reasons

Supported @IgnoreUnitTest reasons

Reason When to use
TrivialFunction Simple getter/pass-through
MethodOverride @Override CRUD/framework methods
DMLOperation INSERT/UPDATE/DELETE/MERGE in body
NoOutParams Procedure with no OUT/IN OUT params
DynamicStatement EXECUTE IMMEDIATE / dynamic SQL
BLOBDataType / CLOBDataType Large object types
PLSQLInSQL PL/SQL embedded in SQL views
PipelinedFunction Pipelined table functions

Cursor integration

Add to Cursor MCP settings:

{
  "mcpServers": {
    "plsql-test": {
      "command": "node",
      "args": ["C:/ifsapps-new/plsql-test-mcp/dist/index.js"]
    }
  }
}

Or after publishing:

{
  "mcpServers": {
    "plsql-test": {
      "command": "npx",
      "args": ["-y", "@ifs/[email protected]"]
    }
  }
}

Development

cd c:/ifsapps-new/plsql-test-mcp
npm install
npm run build
npm start

Deploy-safe generation (v0.1.4)

The generator avoids patterns that break AV_*_TST compilation:

  • No UTF-8 BOM on written .pltst files
  • VARCHAR2(2000) for all generated IS-section locals (bare VARCHAR2 causes PLS-00215)
  • Pre-write validation rejects bare VARCHAR2, BOM, and post-loop generated tests
  • Skips %ROWTYPE return types and SELECT * INTO %ROWTYPE (manual test required)
  • Skips CRUD modify methods using Get_Object_By_Id___ + Unpack___
  • Expression SELECT columns (round(cast(...))) mapped to safe mock column names
  • FOR loop column order matches IFS convention: expected_ | input_param_
  • Not-found cases stay inside the FOR loop (no post-loop statements)
  • Skips @IgnoreUnitTest when the method already has a UNITTEST block
  • Special mocks for Get_Wp_Id, Has_Skills_Assigned_In_Turn, Get_Fault_Id_From_Record_Id, Get_AOS_Days, Get_Hm_Contract_Id_By_Barcode

Batch coverage example

processUnitTestCoverage({
  sourceFile: "C:/ifsapps-new/workspace/adcom/source/adcom/database/AvFault.plsql",
  workspace: "C:/ifsapps-new/workspace",
  jiraKey: "PJZ-12345",
  confirmed: true
})

Example

Analyze McprActivityRelation.plsql:

checkUnitTestability({
  sourceFile: "C:/ifsapps-new/workspace/prjrep/source/prjrep/database/McprActivityRelation.plsql",
  methodName: "Is_Circular_Link___"
})

Generate test:

generateUnitTest({
  sourceFile: ".../McprActivityRelation.plsql",
  methodName: "Is_Circular_Link___",
  workspace: "C:/ifsapps-new/workspace",
  jiraKey: "PJZ-12345",
  confirmed: true
})

Run via ifs-f1-codegen-dev:

generate_and_deploy({
  input_files: [".../McprActivityRelation.plsql", ".../McprActivityRelation.pltst"],
  environment_key: "26r1-dev-lkp",
  workspace: "C:/ifsapps-new/workspace",
  confirmed: true
})

Note on plvst

IFS uses .pltst files for both .plsql and .plsvc unit tests. No separate .plvst extension exists in the codebase — this MCP targets .pltst.

Related

  • integration-testing-mcp — reference MCP architecture
  • ifs-f1-codegen-dev — code generation, SQLcl deploy, live DB inspect

from github.com/VaruniAlwis/plsql-test-mcp

Установка Plsql Test

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/VaruniAlwis/plsql-test-mcp

FAQ

Plsql Test MCP бесплатный?

Да, Plsql Test MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Plsql Test?

Нет, Plsql Test работает без API-ключей и переменных окружения.

Plsql Test — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Plsql Test в Claude Desktop, Claude Code или Cursor?

Открой Plsql Test на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Plsql Test with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории data