Aprende a probar tus ejercicios de Dart en Exercism
Usa la CLI de Exercism para descargar el ejercicio en el que quieres trabajar.
exercism download --track=dart --exercise=hello-world
Luego cambia al directorio del ejercicio.
cd /path/to/exercism/dart/hello-world
Antes de ejecutar las pruebas, descarga las dependencias del ejercicio.
dart pub get
dart test
dart test usa por defecto el reporte compacto, que muestra en una sola línea un recuento continuo de las pruebas aprobadas, omitidas y fallidas.
$ dart test
00:00 +1 -1: test/binary_search_test.dart: finds a value in the middle of an array [E]
Expected: <3>
Actual: <0>
package:matcher expect
test/binary_search_test.dart 13:5 main.<fn>
To run this test again: dart test test/binary_search_test.dart -p vm --plain-name 'finds a value in the middle of an array'
00:00 +1 ~9 -1: Some tests failed.
+1: 1 prueba aprobada~9: 9 pruebas omitidas-1: 1 prueba fallidaPara obtener una salida más detallada de cada prueba, usa el reporte expandido, que muestra el resultado de cada prueba a medida que se ejecuta.
$ dart test -r expanded
00:00 +0: loading test/binary_search_test.dart
00:00 +0: test/binary_search_test.dart: finds a value in an array with one element
00:00 +1: test/binary_search_test.dart: finds a value in the middle of an array
00:00 +1 -1: test/binary_search_test.dart: finds a value in the middle of an array [E]
Expected: <3>
Actual: <0>
package:matcher expect
test/binary_search_test.dart 13:5 main.<fn>
00:00 +1 -1: test/binary_search_test.dart: finds a value at the beginning of an array
00:00 +1 ~1 -1: test/binary_search_test.dart: finds a value at the end of an array
00:00 +1 ~2 -1: test/binary_search_test.dart: finds a value in an array of odd length
00:00 +1 ~3 -1: test/binary_search_test.dart: finds a value in an array of even length
00:00 +1 ~4 -1: test/binary_search_test.dart: identifies that a value is not included in the array
00:00 +1 ~5 -1: test/binary_search_test.dart: a value smaller than the array's smallest value is not found
00:00 +1 ~6 -1: test/binary_search_test.dart: a value larger than the array's largest value is not found
00:00 +1 ~7 -1: test/binary_search_test.dart: nothing is found in an empty array
00:00 +1 ~8 -1: test/binary_search_test.dart: nothing is found when the left and right bounds cross
00:00 +1 ~9 -1: Some tests failed.
La mayoría de los ejercicios tiene varias pruebas y, de forma predeterminada, todas están omitidas menos la primera.
void main() {
final twoFer = TwoFer();
group('TwoFer', () {
test('no name given', () {
final result = twoFer.statement();
expect(result, equals('One for you, one for me.'));
}, skip: false);
test('a name given', () {
final result = twoFer.statement('Alice');
expect(result, equals('One for Alice, one for me.'));
}, skip: true);
test('another name given', () {
final result = twoFer.statement('Bob');
expect(result, equals('One for Bob, one for me.'));
}, skip: true);
});
}
Para trabajar con las pruebas de una en una, cambia skip: true por skip: false en cada prueba a medida que avanzas.
Otra opción es ejecutar todas las pruebas a la vez sin editar el archivo.
dart test --run-skipped
El ejecutor de pruebas en línea ejecuta todas las pruebas al enviar tu solución, incluidas las que están omitidas.
Supón que tienes un ejercicio que ya resolviste y enviaste, y que vuelves a él después de un tiempo. Es posible que te encuentres con este error cuando lo pruebes:
$ dart test
...
Could not find a command named "/path/to/frontend_server.dart.snapshot".
La solución es eliminar el archivo pubspec.lock.
Después, vuelve a ejecutar el comando de dart.