有没有办法在集成测试期间捕获 print() 语句

Nik*_*oni 5 dart flutter flutter-test flutter-integration-test

在集成测试期间是否有任何方法可以监视或保存或读取 print() 语句打印到控制台的任何内容。我正在用于integration_test测试。

mez*_*oni 3

也许这会对你有帮助?

import 'dart:async';
import 'dart:developer';

void main(List<String> args) async {
  final printed = <String>[];
  final result = runZoned(() => foo(), zoneSpecification: ZoneSpecification(
    print: (self, parent, zone, line) {
      printed.add(line);
    },
  ));

  print('Result: $result');
  print('Printed:\n${printed.join('\n')}');
  debugger();
}

int foo() {
  print('Hello');
  print('Goodbye');
  return 41;
}
Run Code Online (Sandbox Code Playgroud)

PS
我添加了一个debugger调用,以便工作结果可见。该声明可以(并且应该)删除。