Skip to content
Grok

Test Coverage หรือความครอบคลุมของการทดสอบ คือการวัดว่าโค้ดของเราได้รับการทดสอบมากน้อยเพียงใด

Coverage Providers

providerDescription
v8Coverage provider ที่ใช้ V8's built-in code coverage เป็นตัวเลือกที่แนะนำเนื่องจากมีประสิทธิภาพสูงและรวดเร็ว
istanbul.js.org faviconistanbulCoverage provider ดั้งเดิมที่มีความเข้ากันได้กับโปรเจกต์เก่า สามารถใช้งานได้กับ Node.js ทุกเวอร์ชัน

Coverage Setup

json
{
	"scripts": {
		"test": "vitest",
		"coverage": "vitest run --coverage"
	}
}
ts
import { defineConfig } from "vitest/config";

export default defineConfig({
  test: {
    coverage: {
      reporter: ["text", "json", "html"],
    },
  },
});

Custom

Coverage Reporter

ts
import { defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    coverage: {
      reporter: [
        // Specify reporter using name of the NPM package
        ['@vitest/custom-coverage-reporter', { someOption: true }],

        // Specify reporter using local path
        '/absolute/path/to/custom-reporter.cjs',
      ],
    },
  },
})

Coverage Provider

ts
import { defineConfig } from 'vitest/config'

export default defineConfig({
  test: {
    coverage: {
      provider: 'custom',
      customProviderModule: 'my-custom-coverage-provider'
    },
  },
})

Changing the Default Coverage Folder Location

ts
import { defineConfig } from 'vite'

export default defineConfig({
  test: {
    coverage: {
      reportsDirectory: './tests/unit/coverage'
    }
  }
})

Ignoring Code

// TODO Ignoring Code

Other Options

Vitest UI

  1. ติดตั้ง vitest ui
bash
npm i -D @vitest/ui
  1. run script
bash
vitest ui