@ 3f- 咨询/ spec- controller- core
背后的调节引擎 spec-controller作为纯粹的图书馆.
假设和证据观察进入; 列出一个分类账。 此包中没有任何内容读取一个文件,生成一个进程,查看时钟或写入一流. 文件读取、出处、输出路由和命令行在 spec-controller 软件包,此软件包基于此软件包.
使用此软件包 围绕调节构建自己的工具:服务、编辑器集成、不同的前端,或已经将报告保存在记忆中的管道. 使用 spec-controller 当你想要一个命令 放在CI.
需要22号节点。 仅限无害环境管理.
安装
npm install @3f-consulting/spec-controller-core
你的第一个电话
import {
parseFeatureCorpus,
scenariosOf,
parseVitestEvidenceObservations,
reconcile,
isBalanced,
} from "@3f-consulting/spec-controller-core";
// One .feature file's text, and one already-parsed Vitest JSON report.
const corpus = parseFeatureCorpus([{ file: "features/checkout.feature", source: featureSource }]);
if (corpus.kind === "unparseable") throw new Error(corpus.faults[0].message);
const scenarios = corpus.parsed.flatMap((feature) => scenariosOf(feature));
const observed = parseVitestEvidenceObservations(vitestReport);
const ledger = reconcile(scenarios, observed);
isBalanced(ledger); // false while any scenario names evidence that did not arrive
parseFeatureCorpus解析每个特性文件一次 。 它返回每个解析出的文件,或者,如果任何文件不解析,则每个文件在解析器自己的单词中的过错.scenariosOf读取@SCN代码和标签 命名它的质量检查 关闭每个解析的情景,并将其变成 债务 场景名称.parseVitestEvidenceObservations将测试报告转换为 意见 上面写着:@SCN它声称.reconcile设定双方对接,并给出每个情景的答案.
套件出口的其他一切都是这三个步骤的变异.
出口的东西
该套装完全发布一个切入点,一个管子输出如下.
-
解析数字 :
- 假设情况:
parseFeatureCorpus,用于描述特性文件一次;scenariosOf, (中文(简体) ),untaggedScenariosOf财务报告和审定财务报表featureCountsOf超过解析文件;corpusCountsOfFeatures覆盖已解析的文件;以及countScnOccurrences超过文件文本; - 证据:
parseVitestEvidenceObservations· ;parseJunitEvidenceObservations财务报告和审定财务报表parsePytestEvidenceObservations,在JUnit XML报告上,你已经解析出对象,从pytestsum或另一个跑者;parseRspecEvidenceObservations,通过RSPEC的JSON报告parseCucumberEvidenceObservations· ; - 工作流程 :
parseWorkflows,它一次地解析 CI 工作流程; - 阅读器的健身功能, 以及管道的台阶实际运行.
两个J股的读者 阅读方式不同
<error>在普通测试中:parseJunitEvidenceObservations读它作为一个失败的观察parsePytestEvidenceObservations读作已破,为pytest的设置错误. - 假设情况:
-
调和数字 :
reconcile为分类账,evidenceReconciliationOf分类账加其摘要evidenceReconciliationFromSources用于解析特性文件、解析工作流程和您已经读取的其他来源的全部组成. -
问分类账数字 :
isBalanced, (中文(简体) ),hasPendingItems, (中文(简体) ),hasBrokenEvidence财务报告和审定财务报表hasNothingToReconcile,四个问题 一个打电话者决定。 执行判决本身就写在报告上:assembleRenderInput点名summary.runVerdict,CLI从那里读取其退出代码. -
渲染器数字 :
renderMarkdown, (中文(简体) ),renderJson, (中文(简体) ),renderReport, (中文(简体) ),renderReportFromJson,以及assembleRenderInput如果你想要有效载荷 而不是弦.assembleSavedReport将保存的JSON报告改编成报告,并重新做出判断。 未经判决保存的报告,或重新提交--strict因此,宣布胜诉的判决. -
证明: 纯子集,该子集记录运行时没有询问文件系统是什么.
这些功能的种类与它们一起导出,因此消费者可以标出它持有的任何价值.
稳定
切入点的出口是 整个公共表面, 和你的合同. 没有什么能证明它漂移. 表面不与书面列表相对照,因此在枪管上添加一个符号,或者扔出一个转子不为构造红色. 生成的 API 报告将在 1.0,有一个兼容的承诺。 包裹在 0.x 版本且不作出兼容承诺;见 docs/compatibility.md. 准确的版本.
资料来源、问题和历史: github.com/3f 咨询/光谱控制器。 。 。 .
许可证
麻省理工学院——见 LICENSE 本包中。 2026 3F 咨询有限公司.