我正在编写一些颤振集成测试,我想使用颤振驱动器来运行它们以查看它们的运行情况。运行 good old 时,测试按预期工作flutter test
。
我正在尝试使用 运行相同的测试flutter drive
,当我将所有代码都放在单个文件中时它们可以工作,但现在我已经重构为多个文件,它不起作用。
我已经将我的一些测试器操作分离到一个单独的 dart 文件中,因此我可以使用机器人风格的方法完成测试。但是现在我将我的机器人导入到测试中,运行颤振驱动器时出现以下错误:
org-dartlang-app:/my_end_to_end_test.dart:7:8: Error: Error when reading 'org-dartlang-app:/robots/add_items_to_list_robot.dart': File not found import '../robots/add_items_to_list_robot.dart';
这是测试和机器人的示例:
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import '../robots/add_items_to_list_robot.dart';
void main(){
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
setupLocator();
group('List should', () {
testWidgets('Add an item when the add button is selected', () async {
// Given
await tester.pumpWidget(const myApp());
// When
await tester.typeTextInTextArea('My list item');
await tester.clickAddToListButton();
// Then
expect(this, that); // You know what I'm getting at
});
});
}
extension ListItemRobot on WidgetTest {
Future<void> typeTextInTextArea(String text) {
// This gets the text area, enters the text
await pumpAndSettle();
}
Future<void> clickAddToListButton() {
final button = find.byKey(Key('AddButton'));
await tap(button);
await pumpAndSettle();
}
}