From 1eb948654a5f0686bbf73f4b62d83d9c999c236e Mon Sep 17 00:00:00 2001 From: Andy Waite Date: Tue, 15 Apr 2025 21:39:32 -0400 Subject: [PATCH] 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 --- docs/src/languages/ruby.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/src/languages/ruby.md b/docs/src/languages/ruby.md index f400024d5c..a80c2bbe55 100644 --- a/docs/src/languages/ruby.md +++ b/docs/src/languages/ruby.md @@ -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: