{"adoption": {"forks": 411, "observed_at": "2026-08-28T04:07:30.011504+00:00", "stars": 2917}, "canonical_url": "https://ross.abutalabs.com/products/testem", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Test'em 'Scripts! A test runner that makes Javascript unit testing fun.", "domain": ["testing", "developer-tools", "web-development"], "enriched": true, "function": ["testing", "e2e-testing", "cli", "ci-cd"], "health_score": 100, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["testem/testem"], "name": "testem/testem", "platform": ["cli", "cross-platform", "windows"], "pushed_at": "2026-08-26T21:27:28+00:00", "repo": "testem/testem", "stars": 2917, "tags": ["test-runner", "browser-testing", "tdd", "javascript-testing", "framework-agnostic", "javascript", "nodejs", "macos", "linux"], "topics": [], "urls": [], "use_cases": ["run javascript unit tests in real browsers", "test runner for mocha jasmine qunit", "run browser tests in ci pipeline", "tdd workflow for javascript", "headless chrome test runs", "run tests across chrome firefox safari edge"], "what_it_is": "Testem is a JavaScript test runner that executes tests in real desktop browsers (Chrome, Firefox, Safari, Edge), Node, or custom launchers. It is framework-agnostic, supporting Jasmine, QUnit, Mocha, and custom adapters, with workflows for both TDD and CI.", "when_to_avoid": ["your project is not JavaScript/Node-based", "you only need Node-only tests without browser execution", "you prefer an all-in-one framework that prescribes its own testing style"], "when_to_choose": ["you need tests running in real browser engines rather than simulated DOM environments", "you want a framework-agnostic runner supporting multiple test frameworks", "you need both interactive TDD mode and CI integration with GitHub Actions or Jenkins"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/testem", "repo": "testem/testem", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:34:05.180404+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "986623d4a090ca04d8bfa13777b0b627a7a7c1b9e03952a90c5ec61690a734fe", "fetched_at": "2026-08-28T04:07:30.011504+00:00", "kind": "readme", "missing": false, "url": "https://github.com/testem/testem"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:34:05.180404+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "986623d4a090ca04d8bfa13777b0b627a7a7c1b9e03952a90c5ec61690a734fe", "fetched_at": "2026-08-28T04:07:30.011504+00:00", "kind": "readme", "missing": false, "url": "https://github.com/testem/testem"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:34:05.180404+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "986623d4a090ca04d8bfa13777b0b627a7a7c1b9e03952a90c5ec61690a734fe", "fetched_at": "2026-08-28T04:07:30.011504+00:00", "kind": "readme", "missing": false, "url": "https://github.com/testem/testem"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:34:05.180404+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "986623d4a090ca04d8bfa13777b0b627a7a7c1b9e03952a90c5ec61690a734fe", "fetched_at": "2026-08-28T04:07:30.011504+00:00", "kind": "readme", "missing": false, "url": "https://github.com/testem/testem"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:34:05.180404+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "986623d4a090ca04d8bfa13777b0b627a7a7c1b9e03952a90c5ec61690a734fe", "fetched_at": "2026-08-28T04:07:30.011504+00:00", "kind": "readme", "missing": false, "url": "https://github.com/testem/testem"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:34:05.180404+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "986623d4a090ca04d8bfa13777b0b627a7a7c1b9e03952a90c5ec61690a734fe", "fetched_at": "2026-08-28T04:07:30.011504+00:00", "kind": "readme", "missing": false, "url": "https://github.com/testem/testem"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.011504+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:34:05.180404+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "986623d4a090ca04d8bfa13777b0b627a7a7c1b9e03952a90c5ec61690a734fe", "fetched_at": "2026-08-28T04:07:30.011504+00:00", "kind": "readme", "missing": false, "url": "https://github.com/testem/testem"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:34:05.180404+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "986623d4a090ca04d8bfa13777b0b627a7a7c1b9e03952a90c5ec61690a734fe", "fetched_at": "2026-08-28T04:07:30.011504+00:00", "kind": "readme", "missing": false, "url": "https://github.com/testem/testem"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:34:05.180404+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "986623d4a090ca04d8bfa13777b0b627a7a7c1b9e03952a90c5ec61690a734fe", "fetched_at": "2026-08-28T04:07:30.011504+00:00", "kind": "readme", "missing": false, "url": "https://github.com/testem/testem"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:34:05.180404+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "986623d4a090ca04d8bfa13777b0b627a7a7c1b9e03952a90c5ec61690a734fe", "fetched_at": "2026-08-28T04:07:30.011504+00:00", "kind": "readme", "missing": false, "url": "https://github.com/testem/testem"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 87}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5531, "days_push": 7, "days_rel": 7, "gap_med": 70.5, "n_releases_24m": 9}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}