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
26 changes: 13 additions & 13 deletions guide/coverage.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,23 +85,23 @@ Vitest 默认采用 'v8' 作为覆盖率提供器。
简单来说,插桩就是在你的源文件里加入一段额外的 JavaScript,用于记录代码的执行路径:

```js
// Simplified example of branch and function coverage counters
// 分支和函数覆盖率计数器的简化示例
const coverage = { // [!code ++]
branches: { 1: [0, 0] }, // [!code ++]
functions: { 1: 0 }, // [!code ++]
} // [!code ++]

export function getUsername(id) {
// Function coverage increased when this is invoked // [!code ++]
// 当这个函数被调用时,函数覆盖率会增加 // [!code ++]
coverage.functions['1']++ // [!code ++]

if (id == null) {
// Branch coverage increased when this is invoked // [!code ++]
// 当这个分支被调用时,分支覆盖率会增加 // [!code ++]
coverage.branches['1'][0]++ // [!code ++]

throw new Error('User ID is required')
}
// Implicit else coverage increased when if-statement condition not met // [!code ++]
// 当 if 语句条件不满足时,隐式的 else 覆盖率会增加 // [!code ++]
coverage.branches['1'][1]++ // [!code ++]

return database.getUser(id)
Expand Down Expand Up @@ -247,10 +247,10 @@ export default defineConfig({
test: {
coverage: {
reporter: [
// Specify reporter using name of the NPM package
// 使用 NPM 包的名称指定报告器
['@vitest/custom-coverage-reporter', { someOption: true }],

// Specify reporter using local path
// 使用本地路径指定报告器
'/absolute/path/to/custom-reporter.cjs',
],
},
Expand All @@ -267,7 +267,7 @@ module.exports = class CustomReporter extends ReportBase {
constructor(opts) {
super()

// Options passed from configuration are available here
// 从配置中传递的选项在这里可用
this.file = opts.file
}

Expand Down Expand Up @@ -315,7 +315,7 @@ const CustomCoverageProviderModule: CoverageProviderModule = {
return new CustomCoverageProvider()
},

// Implements rest of the CoverageProviderModule ...
// 实现 CoverageProviderModule 的其余部分...
}

class CustomCoverageProvider implements CoverageProvider {
Expand All @@ -326,7 +326,7 @@ class CustomCoverageProvider implements CoverageProvider {
this.options = ctx.config.coverage
}

// Implements rest of the CoverageProvider ...
// 实现 CoverageProvider 的其余部分...
}

export default CustomCoverageProviderModule
Expand Down Expand Up @@ -426,8 +426,8 @@ catch (error) {
console.log('Ignored') // [!code error]
}

// Requires rolldown-vite due to esbuild's lack of support.
// See https://vite.dev/guide/rolldown.html#how-to-try-rolldown
// 由于 esbuild 不支持,需要使用 rolldown-vite。
// 参阅 https://vite.dev/guide/rolldown.html#how-to-try-rolldown
try {
console.log('Included')
}
Expand Down Expand Up @@ -462,9 +462,9 @@ export function ignored() { // [!code error]
```
:::

## Coverage Performance {#coverage-performance}
## 覆盖率性能 {#coverage-performance}

If code coverage generation is slow on your project, see [Profiling Test Performance | Code coverage](/guide/profiling-test-performance.html#code-coverage).
如果你的项目中代码覆盖率生成较慢,请参阅[性能测试分析 | 代码覆盖率](/guide/profiling-test-performance.html#code-coverage)

## Vitest UI {#vitest-ui}

Expand Down
8 changes: 4 additions & 4 deletions guide/profiling-test-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ _src_prime-number_ts-525172412.js

## Code coverage

If code coverage generation is slow on your project you can use `DEBUG=vitest:coverage` environment variable to enable performance logging.
如果你的项目中代码覆盖率生成较慢,您可以使用 `DEBUG=vitest:coverage` 环境变量来启用性能日志记录。

```bash
$ DEBUG=vitest:coverage vitest --run --coverage
Expand All @@ -199,9 +199,9 @@ $ DEBUG=vitest:coverage vitest --run --coverage
vitest:coverage Generate coverage total time 3521 ms
```

This profiling approach is great for detecting large files that are accidentally picked by coverage providers.
For example if your configuration is accidentally including large built minified Javascript files in code coverage, they should appear in logs.
In these cases you might want to adjust your [`coverage.include`](/config/#coverage-include) and [`coverage.exclude`](/config/#coverage-exclude) options.
这种性能分析方法非常适合检测被覆盖率提供程序意外包含的大文件。
例如,如果你的配置意外地将大型构建压缩后的 JavaScript 文件包含在代码覆盖率中,这些文件应该会出现在日志中。
在这种情况下,你可能需要调整 [`coverage.include`](/config/#coverage-include) [`coverage.exclude`](/config/#coverage-exclude) 选项。

## Inspecting profiling records

Expand Down
4 changes: 2 additions & 2 deletions guide/reporters.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ export default defineConfig({
Duration 1.26s (transform 35ms, setup 1ms, collect 90ms, tests 1.47s, environment 0ms, prepare 267ms)
```

If there is only one test file running, Vitest will output the full test tree of that file, simillar to the [`tree`](#tree-reporter) reporter. The default reporter will also print the test tree if there is at least one failed test in the file.
如果只有一个测试文件在运行,Vitest 将输出该文件的完整测试树,类似于 [`tree`](#tree-reporter) 报告器。如果文件中至少有一个测试失败,default 报告器也会打印测试树。

```bash
✓ __tests__/file1.test.ts (2) 725ms
Expand Down Expand Up @@ -196,7 +196,7 @@ Example output:
Duration 1.26s (transform 35ms, setup 1ms, collect 90ms, tests 1.47s, environment 0ms, prepare 267ms)
```

An example with `--includeTaskLocation`:
一个带有 `--includeTaskLocation` 参数的示例:

```bash
✓ __tests__/file1.test.ts:2:1 > first test file > 2 + 2 should equal 4 1ms
Expand Down