Aprende a probar tus ejercicios de Dart en Exercism
Usa la CLI de Exercism para descargar el ejercicio en el que quieras trabajar.
exercism download --track=dart --exercise=hello-world
A continuación, cambia al directorio del ejercicio.
cd /path/to/exercism/dart/hello-world
Antes de ejecutar los tests, descarga las dependencias del ejercicio.
dart pub get
dart test
dart test usa el reporter compacto por defecto, que muestra un recuento continuo de tests superados, omitidos y fallidos en una sola línea.
$ 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 test superado~9: 9 tests omitidos-1: 1 test fallidoPara obtener una salida más detallada de cada test, usa el reporter expandido, que muestra cada resultado de test 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 tienen varios tests, y todos menos el primero están omitidos por defecto.
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 los tests de uno en uno, cambia skip: true por skip: false en cada test a medida que avances.
Como alternativa, ejecuta todos los tests a la vez sin editar el archivo.
dart test --run-skipped
El ejecutor de tests en línea ejecuta todos los tests al enviar la solución, incluidos los omitidos.
Supón que tienes un ejercicio que ya has resuelto y enviado, y que vuelves a él después de un tiempo. Puede 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, ejecuta de nuevo el comando dart.