Hm. I'll chip in with an opinion based on surprises I got experimenting a bit with the mix test task.
If I wanted to run tests across multiple files identified by line numbers, I would naively write `mix test test/some_test.exs:15 test/some_test.exs:20`.
`mix test test/some_test.exs` will run all tests of a single file. 👍
`mix test test/some_test.exs test/another_test.exs` will run all tests of both files. 👍
`mix test test/some_test.exs:15` will run the test located at line 15 for that file. 👍
`mix test test/some_test.exs test/another_test.exs:20` will run all tests in some_test.exs, but not the test at line 20 in another_test.exs. 🤔
`mix test test/some_test.exs:15 test/another_test.exs` will run all tests in another_test.exs, but not the test at line 15 in some_test.exs 🤔
In both cases, my expectation was to run all tests of one file, and the test at the specific line for the other file.
`mix test test/some_test.exs:15 test/another_test:20` will exit with an error:
"Paths given to `mix test` did not match any directory/file: test/some_test.exs:15, test/another_test.exs:20" 😔
My expectation was that two tests would have been run, the one at line 15 in some_test.exs, and at line 20 in another_test.exs.
Do people agree that this naive expectation is an intuitive one? (I didn't really know any of the internals of the test runner.) Or would other people have other intuitions?
For running multiple tests in a single file identified by line numbers, I'd support `mix test test/some_test.exs:15:20:35`.
I'd also expect to be able to run `mix test test/some_test.exs:15:20:35 test/another_test.exs:40:75:120`.
The question of shorthand for multiple lines within a single file is of course separate from that of running individual tests across multiple files. Simply commenting as the multi-file issue was brought up.