Skip to content
PluginStats

@epure/vitest weekly downloads statistics

By epure · npm · Testing

Gherkin and YAML test runner for Vitest

View on npm Stale · Oct 18, 2026

@epure/vitest has 13 recorded weekly downloads on npm, a decrease of 18.8% over the past 30 days, ranking #2035 of 2,391 tracked listings.

Weekly downloads
13
Official API · Oct 18, 2026
7-day growth
+8.3%
+1 weekly downloads
30-day growth
-18.8%
-3 weekly downloads
90-day growth
—
Insufficient history
Rank
#2035
Among tracked npm listings

About @epure/vitest

@epure/vitest

Gherkin contracts and structured YAML fixtures run by Vitest, with typed steps for TypeScript and ReScript.

@epure/vitest is the new name of vitest-bdd. See Migration from vitest-bdd.

Install

pnpm add --save-dev @epure/vitest vitest

Configure Vitest

// vitest.config.ts
import { epureVitest } from "@epure/vitest";
import { defineConfig } from "vitest/config";

export default defineConfig({
  plugins: [epureVitest()],
  test: {
    include: ["**/*.feature", "**/*.md", "**/*.test.yaml", "**/*.spec.ts"],
  },
});

epureVitest translates feature files, Gherkin code fences in Markdown, and structured YAML fixtures into Vitest suites in memory. It does not write generated test files to disk.

YAML fixtures

Include .yaml files in Vitest when scenarios are structured examples rather than prose. epureVitest compiles every .yaml file Vitest loads; the test.include glob controls which fixtures are tests.

feature: Calculator
examples:
  - scenario: adds two numbers
    given: a calculator
    left: 1
    right: 2
    result: 3

Register each given in calculator.test.yaml.ts, calculator.test.steps.ts, or a shared steps.ts beside the fixture:

import { Given } from "@epure/vitest";
import { expect } from "vitest";

Given("a calculator", ({ test }, { left, right, result }) => {
  expect(Number(left) + Number(right)).toBe(result);
  expect(test.task.name).toBeTypeOf("string");
});

Each example becomes a source-mapped Vitest test. A scenario's given overrides background.given; one of them is required. The remaining fields occupy the parameter position in the same Given API used by features: the handle first, scenario data second. The handle carries step, which registers a scenario operation, and test, the running Vitest test.

Write a contract

# calculator.feature
Feature: Calculator

  Scenario: Add two numbers
    Given I have a calculator
    When I add 1 and 2
    Then the result is 3

Place its steps beside it:

// calculator.feature.ts
import { Given } from "@epure/vitest";
import { expect } from "vitest";

Given("I have a calculator", ({ step }) => {
  let result = 0;

  step("I add {number} and {number}", (a: number, b: number) => {
    result = a + b;
  });

  step("the result is {number}", (expected: number) => {
    expect(result).toBe(expected);
  });
});

Each Given builder creates private scenario state. The operations it registers through step close over that state, so scenarios can run concurrently without a shared World. The feature file keeps its own words — When, Then, Alors — while the code has one: step. The handle's test is the running Vitest test, for test.onTestFinished teardown.

ReScript

Open the canonical EpureVitest module:

open EpureVitest

given("I have a calculator", ({step}) => {
  let result = ref(0)

  step("I add {number} and {number}", (a, b) => {
    result.contents = a + b
  })

  step("the result is {number}", expected => {
    expect(result.contents).toBe(expected)
  })
})

The package also provides typed Vitest suites, hooks, modes, and assertions. See the ReScript guide.

Migration from vitest-bdd

Former nameCanonical name
package vitest-bddpackage @epure/vitest
vitestBdd()epureVitest()
VitestBddOptionsEpureVitestOptions
ReScript module VitestBddReScript module EpureVitest

The former names were deprecated aliases in 1.1.0 and are removed in 2.0.0.

Development

pnpm install
pnpm build
pnpm test
pnpm --filter epure-vitest-docs check

See CHANGELOG.md for release history.

Description from the npm listing.

  • vitest
  • bdd
  • gherkin
  • cucumber
  • test-runner
  • vitest-plugin
  • step-definitions
  • feature-files
  • rescript
  • typescript
  • testing

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@epure/vitest weekly downloads on npm, last 90 days: 13 weekly downloads as of Oct 18, 2026.@epure/vitestWeekly downloads on npm · Last 90 days13downloads / week050100150200250300350Jul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 23, 2026 – Oct 18, 2026 · 88 observations · Updated Oc…pluginstats.com
@epure/vitest weekly downloads on npm, last 90 days: 13 weekly downloads as of Oct 18, 2026.

7/30/90-day growth

@epure/vitest weekly downloads growth on npm: +8.3% over 7 days, -18.8% over 30 days, 90-day growth unavailable.@epure/vitestWeekly downloads growth on npm13downloads / week now7-day growth+1 weekly downloads+8.3%30-day growth-3 weekly downloads-18.8%90-day growth+13 weekly downloadsInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@epure/vitest weekly downloads growth on npm: +8.3% over 7 days, -18.8% over 30 days, 90-day growth unavailable.

Ranking history

@epure/vitest npm ranking history: currently #2035 (by weekly downloads).@epure/vitestnpm ranking · by weekly downloads · Last 90 days#2035current rank#1900#1920#1940#1960#1980#2000#2020#2040Jul 23Aug 7Aug 22Sep 6Sep 21Oct 6Oct 21rankOct 18, 2026 – Oct 21, 2026 · 4 observations · Updated Oct 18, 2026pluginstats.com
@epure/vitest npm ranking history: currently #2035 (by weekly downloads).

Listing placement

All npm2,389 listings · 120 pages · 1,196 shown · page 104, #10 (overall #2,070)
All npm: every listing in weekly downloads order

Listing placement

Testing21 listings · 2 pages · page 1, #14 (overall #14)
Testing: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (122)
Recent weekly downloads observations for @epure/vitest
Date (UTC)Weekly downloadsChange vs. previous
13+3
10-2
12+2
10-4
14-2
160
16+4
120
12-6
18-6
24-3
27-4
31-8
39—

Similar npm Testing plugins

All 20 @epure/vitest alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@epure/vitest. First seen Oct 16, 2026; last successful collection Oct 21, 2026. See the methodology.