小编Jos*_*sho的帖子

如何从 Flutter 中的集成测试生成测试黄金文件

在 Flutter 中运行集成测试时是否可以生成测试黄金文件(图像)?

当我运行时,我能够生成黄金文件,flutter test --update-goldens但碰巧没有运行集成测试。

我的主要目标是能够在集成测试运行时从 Android 模拟器生成测试黄金文件(图像)。我尝试运行flutter test integration_test/app_test.dart --update-goldens,但不幸的是,我收到了有关具有只读访问权限的错误:

在此输入图像描述

然后我尝试使用以下命令授予读取和写入访问权限flutter driver

在此输入图像描述

但不幸的是,当我运行时,Flutter 驱动程序跳过了生成或比较测试黄金文件(图像)的过程flutter drive --driver=test_driver/integration_test.dart --target=integration_test/app_test.dart

在此输入图像描述

完整的源代码可以在这里找到

flutter flutter-test flutter-integration-test

8
推荐指数
1
解决办法
740
查看次数

Flutter - 如何在小部件测试中选择 DropdownButton 项

我尝试选择DropdownButton item这样的:

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:dropdown_test_sample/main.dart';

void main() {
  testWidgets('Select Dropdown item test', (WidgetTester tester) async {
    // Build our app and trigger a frame.
    await tester.pumpWidget(const SampleApp());

    final dropdown = find.byKey(const ValueKey('dropdown'));

    await tester.tap(dropdown);
    await tester.pumpAndSettle();

    final dropdownItem = find.byKey(const ValueKey('First item key'));

    await tester.tap(dropdownItem);
    await tester.pumpAndSettle();
  });
}
Run Code Online (Sandbox Code Playgroud)

但不幸的是,它抛出了这个异常: 在此输入图像描述

似乎有某种东西不断使用相同的DropdownButton item密钥创建相同的密钥,从而使小部件测试失败,因为tester.tap()无法同时“点击”两个小部件。

这是小部件的完整实现DropdownButton

import 'package:flutter/material.dart';

void main() {
  runApp(const SampleApp());
}

class SampleApp extends StatelessWidget {
  const SampleApp({Key? key}) …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-test flutter-dropdownbutton

6
推荐指数
1
解决办法
6601
查看次数