通路颤振测试结果为tearDownAll



我需要访问tearDownAll回调中的测试结果。我想检查在执行过程中是否有任何测试失败。

tearDownAll(() async {
final success = // code here
});

我研究了InvokerDeclarerEngineLiveTestControllertest_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。我也没有在test_core库中找到用于检查测试结果的API。

有没有办法检查以前的测试是否失败了?我想在测试组的tearDownAll()test()函数中使用它。

我找到了一个可能的问题解决方案,这需要在测试类中添加一些额外的东西。

基本上,你必须检查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
}
});

相关内容

  • 没有找到相关文章

最新更新