The dart test command runs tests that rely on the test package and are under the test directory of the current Dart project. For information on writing tests, see the testing documentation. If you're working on Flutter code, then use the flutter test command instead, as described in Testing Flutter apps.

Here's an example of using dart test to run all tests that are under the current project's test directory:

$ cd my_app
$ dart test

To control which tests run, you can add the paths to directories or files under the test directory:

$ dart test test/library_tour/io_test.dart
00:00 +0: readAsString, readAsLines
00:00 +1: readAsBytes
...

Another way to run a subset of tests is to use the --name (-n), --tags (-t), or --exclude-tags (-x) flag, adding part or all of the string to match:

$ dart test --name String
00:00 +0: test/library_tour/io_test.dart: readAsString, readAsLines
00:00 +1: test/library_tour/core_test.dart: print: print(nonString)
00:00 +2: test/library_tour/core_test.dart: print: print(String)
00:00 +3: test/library_tour/core_test.dart: numbers: toString()
...

When you use these flags more than once in the same command line, only the tests that match all the conditions run:

$ dart test --name String --name print
00:00 +0: test/library_tour/core_test.dart: print: print(nonString)
00:00 +1: test/library_tour/core_test.dart: print: print(String)
00:00 +2: All tests passed!

The dart test command has many more flags to control which tests run, how they run (for example, concurrency and timeout), and where and how the output appears. For further information on command-line options, see the test package or use the --help flag:

$ dart test --help