gpt4 book ai didi

Dart事件队列: How to debug event queue?

转载 作者:行者123 更新时间:2023-12-02 19:41:26 25 4
gpt4 key购买 nike

我正在编写一些利用 HttpServer 的集成测试,一堆Directory().watch() 'ers 以及可能的其他一些 future /流监听代码。

我正在使用以下测试配置:

class LaserServerTestConfiguration extends SimpleConfiguration {
LaserServer _server;
LaserServerTestConfiguration(this._server);
void onDone(bool success) {
super.onDone(success);
_server.stop();
}
}

我的测试如下所示:

main() {
var conf = new LaserConfiguration.fromPath('test/test_config.yaml');
var server = new LaserServer(conf);
unittestConfiguration = new LaserServerTestConfiguration(server);

server.start().then((_) {

test('test file changed event', () {
var response = new Completer<Map>();
response.future.then(expectAsync((e) =>
expect(e, containsValue('test/sample/sample_test.html'))
));
WebSocket.connect("ws://localhost:2014").then((ws) {
ws.listen((msg) {
response.complete(JSON.decode(msg));
ws.close();
});
new File('test/sample/sample.dart').writeAsString("");
});
});

});
}

我遇到的问题是,测试运行(并通过)后,Dart VM 不会退出。大概是因为我的事件队列中仍有待处理的内容。

如何调试事件队列?我想看看是什么阻止了 Dart VM 在测试运行结束时退出。

您可以在自定义 TestConfiguration 中看到,我重载了 onDone(),它被调用,并且我 stop() 我的服务器(HttpServer 上的 .close(force: true) 并循环我的所有 Directory().watch() 并取消订阅)。但有些东西仍然存在......

最佳答案

观察站现在(Dart VM 版本:1.11.0-edge.131775)允许在调试器 View 中调查消息队列。

关于Dart事件队列: How to debug event queue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27024868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com