{"id":14117,"library":"test-progress-tracker","title":"Test Progress Tracker","description":"The `test-progress-tracker` library provides a utility to monitor and manage the progress of individual tests and entire test suites over time. It aims to offer insights into test execution status, which can be particularly useful for long-running test suites or within continuous integration environments to observe trends, identify regressions, or track performance changes. The current stable version is `2.0.6`. Its release cadence has been infrequent since its `v2.0.0` major release in late 2018, with the latest update in early 2022 primarily addressing bug fixes and dependency updates, suggesting the project is in a maintenance phase. A key differentiator is its focus on explicit test progress reporting, allowing granular tracking beyond simple pass/fail outcomes. It includes TypeScript type definitions, enhancing developer experience and type safety.","status":"maintenance","version":"2.0.6","language":"javascript","source_language":"en","source_url":"https://github.com/unional/test-progress-tracker","tags":["javascript","typescript"],"install":[{"cmd":"npm install test-progress-tracker","lang":"bash","label":"npm"},{"cmd":"yarn add test-progress-tracker","lang":"bash","label":"yarn"},{"cmd":"pnpm add test-progress-tracker","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"The library primarily uses named exports. Direct CommonJS `require` might work for the default export (if any) but is not the recommended approach, especially with TypeScript.","wrong":"const createTracker = require('test-progress-tracker');","symbol":"createTracker","correct":"import { createTracker } from 'test-progress-tracker';"},{"note":"Imports the TypeScript interface for the tracker instance, useful for type hinting.","symbol":"TestTracker","correct":"import { TestTracker } from 'test-progress-tracker';"},{"note":"Imports the enum for defining test outcomes (e.g., Pass, Fail, Skip).","symbol":"TestStatus","correct":"import { TestStatus } from 'test-progress-tracker';"}],"quickstart":{"code":"import { createTracker, TestTracker, TestStatus } from 'test-progress-tracker';\n\nasync function runMockTests() {\n  const tracker: TestTracker = createTracker({\n    suiteName: 'My Application E2E Suite',\n    totalTests: 4,\n    reporter: (testName, status, message?) => {\n      console.log(`[${testName}] ${status.toUpperCase()}: ${message || ''}`);\n    }\n  });\n\n  console.log('Starting test suite...');\n\n  tracker.startTest('User Login Flow');\n  await new Promise(resolve => setTimeout(resolve, 300)); // Simulate async operation\n  tracker.reportProgress('User Login Flow', 50, 'Authenticating user...');\n  await new Promise(resolve => setTimeout(resolve, 200));\n  tracker.endTest('User Login Flow', TestStatus.Pass, 'Successfully logged in.');\n\n  tracker.startTest('Data Fetch API');\n  await new Promise(resolve => setTimeout(resolve, 500));\n  tracker.endTest('Data Fetch API', TestStatus.Fail, 'API endpoint returned 500 error.');\n\n  tracker.startTest('Shopping Cart Interaction');\n  await new Promise(resolve => setTimeout(resolve, 400));\n  tracker.endTest('Shopping Cart Interaction', TestStatus.Pass, 'Items added and removed correctly.');\n\n  tracker.startTest('Payment Gateway Integration');\n  await new Promise(resolve => setTimeout(resolve, 100));\n  tracker.endTest('Payment Gateway Integration', TestStatus.Skip, 'Skipped due to external service downtime.');\n\n  tracker.finalize();\n  console.log('Test suite finished.');\n}\n\nrunMockTests();","lang":"typescript","description":"This quickstart demonstrates how to initialize the tracker, start and end individual tests with different statuses, report progress within a test, and finalize the overall test run."},"warnings":[{"fix":"Review your build process and integration points when upgrading to v2.0.0 or later. Although the exact nature of the 'file changes' is not detailed, it implies potential changes in how the library's output is consumed or bundled.","message":"Version 2.0.0 introduced breaking changes related to the resulting output file structure. Direct compatibility with configurations or integrations relying on the previous file output might break.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Always use named imports as demonstrated: `import { createTracker, TestTracker } from 'test-progress-tracker';`.","message":"The library primarily uses named exports (e.g., `createTracker`). Attempting to use a default import or a generic `require('test-progress-tracker')` without destructuring might result in `undefined` or an empty object.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"For optimal compatibility and features, use Node.js version 6 or newer. For modern development, using a current LTS Node.js version is always recommended.","message":"While `v2.0.3` added Node.js 6 support, earlier `v2.x` versions might have had more restrictive Node.js environment requirements. Ensure your Node.js version is adequately supported.","severity":"gotcha","affected_versions":"<2.0.3"}],"env_vars":null,"search_vec":"'2.0.6':67 '2018':81 '2022':88 'address':90 'aim':29 'allow':115 'beyond':118 'bug':91 'cadenc':70 'chang':61 'continu':50 'current':63 'definit':126 'depend':94 'develop':128 'differenti':106 'earli':87 'enhanc':127 'entir':23 'environ':52 'execut':35 'experi':129 'explicit':111 'fix':92 'focus':109 'granular':116 'identifi':56 'includ':123 'individu':20 'infrequ':73 'insight':32 'integr':51 'javascript':133 'key':105 'late':80 'latest':84 'librari':9 'long':44 'long-run':43 'mainten':102 'major':77 'manag':16 'monitor':14 'observ':54 'offer':31 'outcom':121 'particular':40 'pass/fail':120 'perform':60 'phase':103 'primarili':89 'progress':2,7,18,113 'project':98 'provid':10 'regress':57 'releas':69,78 'report':114 'run':45 'safeti':132 'simpl':119 'sinc':74 'stabl':64 'status':36 'suggest':96 'suit':25,47 'test':1,6,21,24,34,46,112 'test-progress-track':5 'time':27 'track':59,117 'tracker':3,8 'trend':55 'type':125,131 'typescript':124,134 'updat':85,95 'use':41 'util':12 'v2.0.0':76 'version':65 'within':49","created_at":"2026-04-20T01:58:01.216964+00:00","updated_at":"2026-04-20T01:58:01.216964+00:00","problems":[{"fix":"Ensure you are using named imports: `import { createTracker } from 'test-progress-tracker';`","cause":"Incorrect import statement; `createTracker` was not properly destructured from the package.","error":"TypeError: createTracker is not a function"},{"fix":"Ensure that `tracker.endTest()` is called for a test before `tracker.startTest()` is called again with the same test name, or use unique names for concurrent tests.","cause":"Attempted to call `tracker.startTest()` for a test that has already been initiated and not yet ended.","error":"Error: Test 'my-test-name' is already running."},{"fix":"Verify that `const tracker = createTracker(...)` has been successfully executed and the `tracker` variable is accessible where `startTest` is called.","cause":"The `tracker` object was not correctly initialized by calling `createTracker()` or the variable holding the tracker instance is out of scope.","error":"Cannot read properties of undefined (reading 'startTest')"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/unional/test-progress-tracker","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/test-progress-tracker","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing","observability"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-18","install_tag":null}}