docs: Update Rails test task to run using name (#28574)

The author of Rails' minitest integration
[recommended](https://github.com/zed-extensions/ruby/issues/56#issuecomment-2795010202)
using the test name rather than line number.

This solves the problem in
https://github.com/zed-extensions/ruby/issues/56.

Note that everything is within `command`. I first tried using `args`:

```json
{
  "command": "bin/rails",
  "args": ["test", "$ZED_RELATIVE_FILE -n /$ZED_SYMBOL/"],
  "tags": ["ruby-test"]
}
```
but minitest receives this as:

```
Run options: -n "/\"foo bar\"/" --seed 31855
```

which doesn't match due to the escaping.

Release Notes:

- N/A
This commit is contained in:
Andy Waite 2025-04-15 21:39:32 -04:00 committed by GitHub
parent 35da1502e1
commit 1eb948654a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -291,14 +291,15 @@ To run tests in your Ruby project, you can set up custom tasks in your local `.z
```json
[
{
"label": "test $ZED_RELATIVE_FILE:$ZED_ROW",
"command": "bin/rails",
"args": ["test", "\"$ZED_RELATIVE_FILE:$ZED_ROW\""],
"label": "test $ZED_RELATIVE_FILE -n /$ZED_SYMBOL/",
"command": "bin/rails test $ZED_RELATIVE_FILE -n /$ZED_SYMBOL/",
"tags": ["ruby-test"]
}
]
```
Note: We can't use `args` here because of the way quotes are handled.
### Minitest
Plain minitest does not support running tests by line number, only by name, so we need to use `$ZED_SYMBOL` instead: