Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/src/components/HomepageFeatures/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const FeatureList: FeatureItem[] = [
icon: '🔧',
description: (
<>
Multiple ways to write, inject data, and control tests. Support for data-driven testing, matrix tests, and custom data sources.
Data-driven arguments, matrix tests, and custom data sources — plus injectable, shared fixtures with dependency injection and reference-counted disposal.
</>
),
codeExample: `[Test]
Expand All @@ -32,7 +32,7 @@ public async Task TestAdd(int a, int b, int expected)
icon: '✨',
description: (
<>
Clean attribute-based syntax that's easy to read and write. Fluent assertions make tests expressive and self-documenting.
Clean, attribute-based tests with fluent async assertions that read like sentences — and pinpoint the exact difference when they fail, instead of dumping object graphs at you.
</>
),
codeExample: `[Test]
Expand All @@ -49,7 +49,7 @@ public async Task TestAsync()
icon: '⚡',
description: (
<>
Source generated tests with Native AOT support. Built on Microsoft Testing Platform to reduce overhead and improve efficiency.
Source-generated tests with Native AOT support, built on the Microsoft Testing Platform. Work shifts from run time to build time, so every run after starts faster.
</>
),
codeExample: `// AOT Compatible
Expand Down
38 changes: 20 additions & 18 deletions docs/src/pages/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,10 @@ public async Task MyTest()
<div className={styles.badge}>Modern .NET Testing</div>
</div>
<p className={styles.heroSubtitle}>
A modern testing framework for .NET built with performance in mind.
Leveraging source generation and AOT compilation for efficient test execution.
A modern .NET testing framework where tests are discovered at compile time, not
reflected at runtime. Source-generated and Native AOT ready, parallel by default,
Comment on lines +46 to +47

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify the no-reflection discovery claim

Projects can explicitly run in reflection mode (--reflection, TUNIT_EXECUTION_MODE=reflection, or [ReflectionMode]; see the existing reference docs and ExecutionModeHelper), and that path performs runtime reflection-based discovery/execution. This copy states unconditionally that TUnit tests are not reflected at runtime, which contradicts supported reflection-mode usage and can mislead users debugging that mode; please qualify it as the default/source-generation path instead.

Useful? React with 👍 / 👎.

batteries included — assertions, mocking, and first-class ASP.NET Core, Aspire,
and Playwright integrations.
</p>
<div className={styles.heroStats}>
<div className={styles.stat}>
Expand Down Expand Up @@ -168,33 +170,33 @@ function WhyTUnit() {
const features = [
{
icon: '⚡',
title: 'Performance Focused',
description: 'Source generated code eliminates reflection overhead. Built on the modern Microsoft Testing Platform.',
title: 'Compile-Time Discovery',
description: 'Tests are wired up by a source generator at build time, not found via reflection at runtime — faster startup, better IDE integration, and full Native AOT / trimming support.',
},
{
icon: '🎯',
title: 'Compile-Time Validation',
description: 'Source generators provide early error detection and full IntelliSense support.',
title: 'Compile-Time Safety',
description: 'A suite of Roslyn analyzers ships in the box, so invalid hook signatures, broken data sources, and misused assertions fail your build — not your CI run.',
},
{
icon: '🚀',
title: 'AOT Compatible',
description: 'Native AOT support enables faster startup times and reduced memory usage.',
icon: '🔀',
title: 'Parallel by Default',
description: 'Tests run concurrently out of the box; [DependsOn], [NotInParallel], and [ParallelLimiter<T>] give you precise ordering and throttling when you need it.',
},
{
icon: '🔧',
title: 'Extensible',
description: 'Rich extension points and customization options to fit your testing needs.',
icon: '🧩',
title: 'Batteries Included',
description: 'Rich async assertions, shared fixtures with dependency injection, and lifecycle hooks at every scope — plus a source-generated mocking library.',
},
{
icon: '📊',
title: 'Data Driven',
description: 'Powerful data source attributes for parameterized and matrix testing.',
icon: '🔌',
title: 'First-Class Integrations',
description: 'Purpose-built support for ASP.NET Core, Aspire, and Playwright, so integration and end-to-end tests feel native to the framework.',
},
{
icon: '🎨',
title: 'Modern API',
description: 'Fluent assertions, async-first design, and intuitive test organization.',
icon: '🚀',
title: 'AOT & Trimming Ready',
description: 'Native AOT support enables dramatically faster startup and reduced memory usage, with no runtime reflection to trim away.',
},
];

Expand Down
Loading