close

silent

  • 类型: boolean | 'passed-only'
  • 默认值: false
  • CLI: --silent [value]

控制是否静默测试中的 console 日志输出。

  • 设为 true 时,隐藏所有被拦截的测试 console 日志。
  • 设为 'passed-only' 时,仅保留失败文件、套件和测试用例的被拦截日志。
CLI
rstest.config.ts
npx rstest --silent=passed-only

示例

silent 设置为 'passed-only' 时,通过 console 打印的日志会先被缓存;通过任务的日志会被丢弃,失败任务的日志会在失败输出附近回放。

example.test.ts
import { describe, expect, it } from '@rstest/core';

describe('math', () => {
  it('passes', () => {
    console.log('pass log');
    expect(1 + 1).toBe(2);
  });

  it('fails', () => {
    console.log('fail log');
    expect(1 + 1).toBe(3);
  });
});

最终只会打印 fail log

Note

Rstest 会尽力将日志归属到具体测试上,但在 browser mode 的并发异步测试场景中,日志归属可能不会完全准确。

在 browser mode 下,这条拦截链路仍然会调用原始的 console.*,以便日志继续出现在 DevTools 中。因此,silent 控制的是 Rstest / reporter 的输出,不一定会把浏览器原生控制台中的日志也一起隐藏。

disableConsoleIntercepttrue 时,silent 仍然生效。此时日志不会经过 reporter 的 console 拦截链路,因此 onConsoleLogprintConsoleTrace 仍然不会生效;但在 silent: 'passed-only' 下,Rstest 仍会在内部缓存日志,并在失败任务结束后通过原始 console 输出回放对应日志。