如何为Flutter golden测试文件指定diff容差级别
Flutter Golden测试diff容差配置方法
从2.5.0版本开始,Flutter官方已支持为Golden测试配置像素差异容差,你可以通过两种方式配置:
单个测试用例单独配置
直接在matchesGoldenFile方法中传入命名参数diffTolerance即可,参数取值范围为0~1,代表允许的差异像素占总像素的比例:
await expectLater( find.byType(MyTestWidget), matchesGoldenFile( 'my_test_widget.png', // 示例:允许1%的像素差异 diffTolerance: 0.01, ), );
参数说明:默认值为0,即完全不允许任何像素差异,和原生默认匹配逻辑一致。
全局统一配置所有测试用例
如果需要给所有Golden测试设置统一的容差,可以在测试初始化时修改全局LocalFileComparator的默认参数:
import 'package:flutter_test/flutter_test.dart'; void main() { setUpAll(() { final defaultComparator = GoldenFileComparator.instance; if (defaultComparator is LocalFileComparator) { // 全局设置所有Golden测试默认允许0.5%的像素差异 defaultComparator.diffTolerance = 0.005; } }); // 后续测试用例无需再单独传diffTolerance参数 testWidgets('Golden测试示例', (tester) async { await tester.pumpWidget(const MyTestWidget()); await expectLater( find.byType(MyTestWidget), matchesGoldenFile('my_test_widget.png'), ); }); }
内容的提问来源于stack exchange,提问作者Burhanuddin Rashid
相关产品推荐
相关产品推荐

