在 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:
完整的源代码可以在这里找到
我尝试选择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)