import 'dart:io'; import 'package:http/http.dart'; import 'package:test/test.dart'; import 'package:test_process/test_process.dart'; const defaultTimeout = Timeout(Duration(seconds: 3)); void main() { test('defaults', timeout: defaultTimeout, () async { final proc = await TestProcess.start('dart', ['bin/server.dart']); await expectLater( proc.stdout, emitsThrough('Listening on :8080'), ); final response = await get(Uri.parse('http://localhost:8080')); expect(response.statusCode, 200); expect(response.body, 'Hello, World!'); await expectLater( proc.stdout, emitsThrough(endsWith('GET [200] /')), ); proc.signal(ProcessSignal.sigterm); await proc.shouldExit(0); await expectLater( proc.stdout, emitsThrough('Received signal SIGTERM - closing'), ); }); }