← Back to home
Comparison · Infra & APIs

q2 vs testthat

A side-by-side editorial comparison of q2 and testthat — release velocity, themes, recent moves, and the top alternatives to consider.

q2 vs testthat: at a glance

Featureq2testthat
SectorInfra & APIsInfra & APIs
Velocity score6.30.0
Sparks · 30d10
Top themesrust-rewrite, publishing-toolchain, quarto, themingtesting, coding-agents, opentelemetry, deprecations
Last editorial update10h ago6d ago
WebsiteVisit →Visit →

What is q2?

After two releases pulling ahead, q2 spends v0.23.0 back on parity: light/dark theming.

q2 is the Quarto team's Rust reimplementation of the publishing toolchain, shipping as a statically linked single binary with minisign-signed archives and a bundled Quarto Hub MCP server, still marked experimental and not production-ready. The cadence holds at roughly a release a day through mid-August, with raw commit logs standing in for curated notes. v0.22.0 was the break in the pattern — llms.txt site output and a live-share preview, the first capability the original toolchain does not have. v0.23.0 goes straight back to closing the parity gap, and does it at epic scale.

Read the full q2 trajectory →

What is testthat?

testthat now ships a reporter built for the coding agent running the tests.

testthat is at 3.3.2, which added LlmReporter(), a reporter designed for LLM coding agents and used automatically inside Claude Code, Cursor and Gemini CLI, with AGENT=1 to opt any other agent in. The same release emits OpenTelemetry traces when tracing is enabled. It follows 3.3.0, a large lifecycle release that required R 4.1, made local_mock() and with_mock() defunct, and rewrote every expect_ failure message to state what was expected, what arrived and how they differ.

Read the full testthat trajectory →

q2 vs testthat: editorial side-by-side

Q
q2
INFRA · APIS
6.3

After two releases pulling ahead, q2 spends v0.23.0 back on parity: light/dark theming.

◆ Current state

q2 is the Quarto team's Rust reimplementation of the publishing toolchain, shipping as a statically linked single binary with minisign-signed archives and a bundled Quarto Hub MCP server, still marked experimental and not production-ready. The cadence holds at roughly a release a day through mid-August, with raw commit logs standing in for curated notes. v0.22.0 was the break in the pattern — llms.txt site output and a live-share preview, the first capability the original toolchain does not have. v0.23.0 goes straight back to closing the parity gap, and does it at epic scale.

◆ Where it's heading

The light-dark epic is the shape of how this team retires a Quarto 1 feature: a design doc, then ThemeConfig growing a parsed dark variant, dual theme compilation with color-scheme emission, attributed stylesheet links, a color-mode toggle runtime, an accessibility-aware highlight-style reader, a brand light/dark seam, and an end-to-end verification pass against quarto-web before the docs land. One phase (D) was deferred with its options recorded rather than dropped. Around it, panel-tabset support lands, format.html.css is finally copied and rebased per page, and the llms companion output gains a link-format attribute so authors control where companion links point — the one thread tying this release back to the v0.22.0 work.

◆ Prediction

Expect the remaining Q1 parity items to keep setting the release agenda, with the deferred light-dark phase D and the freshly opened panel-tabset plan the two named strands most likely to fill the next few tags. npx distribution for the standalone Quarto Hub MCP bundle is still the only distribution item the notes explicitly call planned.

T
testthat
INFRA · APIS
0.0

testthat now ships a reporter built for the coding agent running the tests.

◆ Current state

testthat is at 3.3.2, which added LlmReporter(), a reporter designed for LLM coding agents and used automatically inside Claude Code, Cursor and Gemini CLI, with AGENT=1 to opt any other agent in. The same release emits OpenTelemetry traces when tracing is enabled. It follows 3.3.0, a large lifecycle release that required R 4.1, made local_mock() and with_mock() defunct, and rewrote every expect_ failure message to state what was expected, what arrived and how they differ.

◆ Where it's heading

Both threads point the same way: making test output legible to something other than a human reading a console. The 3.3.0 message rewrite made failures self-describing, and LlmReporter() plus OpenTelemetry take that to machine consumers — an agent parsing results and a tracing backend collecting them. The deprecation clean-out running underneath is the usual cost of getting there.

◆ Prediction

With a reporter now shipped for coding agents and tracing behind optional packages, the next release most likely refines that reporter's output format rather than adding another consumer.

Alternatives to q2 and testthat

Other Infra & APIs products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either q2 or testthat.

See all q2 alternatives → · See all testthat alternatives →

Recent activity from q2 and testthat

Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.

  1. 1d agoq2Light/dark themes with a color-mode toggle; panel-tabset support
  2. 4d agoq2llms.txt site output and a live-share collaborative preview
  3. 5d agoq2TOC entries carry inline markup; draft banner restored
  4. 6d agoq2Adds alias redirect stubs and diagnostic suppression
  5. 6d agoq2Bumps samod and automerge; fixes indented continuations
  6. 7d agoq2Lua filters supported; mermaid bundled instead of CDN-loaded
  7. 7mo agotestthattestthat 3.3.2
  8. 8mo agotestthatFixes shinytest2 screenshot snapshots on CI
  9. 9mo agotestthatAll failure messages rewritten; local_mock() now defunct
  10. 1y agotestthatFixes expect_no_error() and skip() outside a test
  11. 1y agotestthatexpect_s7_class() and new failure-testing expectations
  12. 2y agotestthatR-devel format fix and a more reliable offline check

Frequently asked questions

What is the difference between q2 and testthat?

They serve adjacent needs but don't currently overlap on shipped themes. q2 is currently shipping more aggressively (velocity 6.3 vs 0.0), with 1 editorial sparks in the last 30 days against 0. See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.

Is q2 better than testthat?

Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. q2 is currently shipping more aggressively (velocity 6.3 vs 0.0), with 1 editorial sparks in the last 30 days against 0. For your specific use case, the alternatives sections above list other Infra & APIs products to evaluate alongside.

What are the best alternatives to q2?

Top q2 alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "q2 alternatives" section above for the current picks, or visit /alternatives/q2 for the full list with editorial commentary on each.

What are the best alternatives to testthat?

Top testthat alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "testthat alternatives" section above for the current picks, or visit /alternatives/testthat for the full list with editorial commentary on each.