我正在尝试编写Flutter集成测试,并使用一个配置文件运行所有测试,而不是为每个测试都创建配置文件。有什么方法可以做到这一点吗?
现在我有login.dart和login_test.dart等等,用于每个测试。我知道它的约定,每个配置和测试文件必须有相同的名称,但这不是我需要的,更多的可配置的东西是受欢迎的。提前感谢。
这是我的配置文件(login.dart)
import 'package:flutter_driver/driver_extension.dart';
import 'package:seve/main.dart' as app;
void main() {
enableFlutterDriverExtension();
app.main();
}
而test(login_test.dart)看起来像这样
import ...
FlutterDriver driver;
void main() {
setUpAll(() async {
driver = await FlutterDriver.connect();
});
tearDownAll(() async {
if (driver != null) {
driver.close();
}
});
test('T001loginAsDriverAndVerifyThatDriverIsLogedInTest', () async {
some_code...
});
});
现在我想创建一个新的测试文件(例如login_warning.dart),并且能够通过调用一个配置文件(login.dart)来启动两个测试。这可能吗?
5条答案
按热度按时间2hh7jdfx1#
是的,可以使用相同的“配置”运行多个“测试”文件。
在flutter术语中,配置文件是 target,测试文件是 driver,目标始终是
login.dart
,但有两个驱动程序login_test.dart
和login_warning.dart
。使用
flutter drive
命令,您可以指定target
以及driver
。因此,要运行这两个驱动程序,只需执行以下命令
这将首先执行
login_test.dart
,然后执行login_warning.dart
驱动程序。z9zf31ra2#
您总是可以有一个启动的主测试文件,例如
然后把测试组作为函数调用,就像这样-
因此,只需一个命令就可以执行
main()
中提到的所有情况xcitsw883#
就像vzurd的回答一样,我最喜欢也是最简洁的方法是创建一个测试文件,并从其中调用所有主要方法:
然后只需在单个测试文件上运行驱动程序:
ocebsuys4#
为了扩展@sceee的回答:
例如,您可以将多个命令放入名为
integration_tests.sh
的shell脚本中,然后使用单个命令运行它们。使可执行:
$chmod a+rx integration_tests.sh
运行它:
$./integration_tests.sh
uyhoqukh5#
我们可以使用shell命令来自动化这个过程。
以下解决方案甚至可以用于任何新的测试文件,而无需手动将其名称添加到任何文件中。
1.在根目录中创建一个名为
integrationTestRunner.sh
的shell脚本。touch integrationTestRunner.sh
1.在
integrationTestRunner.sh
文件中,粘贴以下代码。1.使用任意方法运行
integrationTestRunner.sh
文件:./integrationTestRunner.sh
运行脚本