在 tearDownAll 中访问 flutter 测试结果
Access flutter tests result in tearDownAll
我需要在 tearDownAll
回调中访问测试结果。我想检查执行过程中是否有任何测试失败。
tearDownAll(() async {
final success = // code here
});
我研究了 类,例如 Invoker
、Declarer
、Engine
、LiveTestController
和 test_core.dart
文件。看起来这是满足我需要的代码。
var success = await runZoned(() => Invoker.guard(engine.run),
zoneValues: {#test.declarer: _globalDeclarer});
if (success) return null;
print('');
unawaited(Future.error('Dummy exception to set exit code.'));
不幸的是 engine
无法从外部访问。我也没有找到 API 来检查 test_core
库中的测试结果。
有没有办法检查以前的测试是否失败?我想在测试组的 tearDownAll()
或 test()
函数中使用它。
我找到了我的问题的可能解决方案,在测试中需要一些额外的东西 class。
基本上你必须检查 tearDown
中的每一个测试结果并跟踪它们,然后在 tearDownAll 中你可以检查是否有任何测试失败。
import 'package:test_api/src/backend/invoker.dart';
import 'package:test_api/src/backend/state.dart' as test_api;
final failedTests = [];
tearDown(() {
if (Invoker.current.liveTest.state.result == test_api.Result.error) {
failedTests.add(Invoker.current.liveTest.individualName);
}
});
tearDownAll(() {
if (failedTests.isNotEmpty) {
// do stuff
}
});
我需要在 tearDownAll
回调中访问测试结果。我想检查执行过程中是否有任何测试失败。
tearDownAll(() async {
final success = // code here
});
我研究了 类,例如 Invoker
、Declarer
、Engine
、LiveTestController
和 test_core.dart
文件。看起来这是满足我需要的代码。
var success = await runZoned(() => Invoker.guard(engine.run),
zoneValues: {#test.declarer: _globalDeclarer});
if (success) return null;
print('');
unawaited(Future.error('Dummy exception to set exit code.'));
不幸的是 engine
无法从外部访问。我也没有找到 API 来检查 test_core
库中的测试结果。
有没有办法检查以前的测试是否失败?我想在测试组的 tearDownAll()
或 test()
函数中使用它。
我找到了我的问题的可能解决方案,在测试中需要一些额外的东西 class。
基本上你必须检查 tearDown
中的每一个测试结果并跟踪它们,然后在 tearDownAll 中你可以检查是否有任何测试失败。
import 'package:test_api/src/backend/invoker.dart';
import 'package:test_api/src/backend/state.dart' as test_api;
final failedTests = [];
tearDown(() {
if (Invoker.current.liveTest.state.result == test_api.Result.error) {
failedTests.add(Invoker.current.liveTest.individualName);
}
});
tearDownAll(() {
if (failedTests.isNotEmpty) {
// do stuff
}
});