Test Results

Display test suite results with pass/fail/skip status and error details.

The TestResults component displays test suite results including summary statistics, progress, individual tests, and error details.

Install using CLI

AI Elements Vue
shadcn-vue CLI
npx ai-elements-vue@latest add test-results

Install Manually

Copy and paste the following code in the same folder.

TestResults.vue
TestResultsHeader.vue
TestResultsSummary.vue
TestResultsDuration.vue
TestResultsProgress.vue
TestResultsContent.vue
TestSuite.vue
TestSuiteName.vue
TestSuiteContent.vue
TestSuiteStats.vue
Test.vue
TestStatus.vue
TestName.vue
TestDuration.vue
TestError.vue
TestErrorMessage.vue
TestErrorStack.vue
context.ts
index.ts
<script setup lang="ts">
import type { HTMLAttributes } from 'vue'
import type { TestResultsSummaryData } from './context'
import { cn } from '@repo/shadcn-vue/lib/utils'
import { computed, provide, reactive } from 'vue'
import { TestResultsContextKey } from './context'

interface Props extends /* @vue-ignore */ HTMLAttributes {
  summary?: TestResultsSummaryData
  class?: HTMLAttributes['class']
}

const props = defineProps<Props>()

const context = reactive({
  summary: computed(() => props.summary),
})

provide(TestResultsContextKey, context)
</script>

<template>
  <div
    :class="cn('rounded-lg border bg-background', props.class)"
    v-bind="$attrs"
  >
    <slot>
      <TestResultsHeader v-if="summary">
        <TestResultsSummary />
        <TestResultsDuration />
      </TestResultsHeader>
    </slot>
  </div>
</template>

Features

  • Summary statistics (passed/failed/skipped)
  • Progress bar visualization
  • Collapsible test suites
  • Individual test status and duration
  • Error messages with stack traces
  • Color-coded status indicators

Status Colors

StatusColorUse Case
passedGreenTest succeeded
failedRedTest failed
skippedYellowTest skipped
runningBlue (animated)Test in progress

Examples

Basic Usage

With Test Suites

With Error Details

Props

<TestResults />

summaryTestResultsSummaryData
Test results summary containing passed, failed, skipped, total, and optional duration.
...propsHTMLAttributes
Additional props forwarded to the root <div> element.

<TestSuite />

namerequiredstring
Suite name.
statusrequired'passed' | 'failed' | 'skipped' | 'running'
Overall suite status.
defaultOpenboolean
Initially expanded.

<Test />

namerequiredstring
Test name.
statusrequired'passed' | 'failed' | 'skipped' | 'running'
Test status.
durationnumber
Test duration in ms.

<TestResultsHeader />

...propsHTMLAttributes
Additional props forwarded to the header <div> element.

<TestResultsSummary />

...propsHTMLAttributes
Additional props forwarded to the summary <div> element.

<TestResultsDuration />

...propsHTMLAttributes
Additional props forwarded to the duration <span> element.

<TestResultsProgress />

...propsHTMLAttributes
Additional props forwarded to the progress <div> element.

<TestResultsContent />

...propsHTMLAttributes
Additional props forwarded to the content <div> element.

<TestSuiteName />

...propsCollapsibleTriggerProps
Additional props forwarded to the CollapsibleTrigger component.

<TestSuiteStats />

passednumber
Number of passed tests.
failednumber
Number of failed tests.
skippednumber
Number of skipped tests.
...propsHTMLAttributes
Additional props forwarded to the stats <div> element.

<TestSuiteContent />

...propsCollapsibleContentProps
Additional props forwarded to the CollapsibleContent component.

<TestStatus />

...propsHTMLAttributes
Additional props forwarded to the status <span> element.

<TestName />

...propsHTMLAttributes
Additional props forwarded to the name <span> element.

<TestDuration />

...propsHTMLAttributes
Additional props forwarded to the duration <span> element.

<TestError />

...propsHTMLAttributes
Additional props forwarded to the error container <div> element.

<TestErrorMessage />

...propsHTMLAttributes
Additional props forwarded to the error message <p> element.

<TestErrorStack />

...propsHTMLAttributes
Additional props forwarded to the stack trace <pre> element.