在VSCode中使用Mix单元测试--only参数调试单个测试报错求助
调试Elixir单个测试时避免参数错误的解决方法
问题核心
你遇到的未知选项错误,本质是VSCode launch.json里的参数格式不对——不能把多个命令行参数合并成一个字符串,必须拆分为数组的独立元素。
正确配置步骤
1. 给目标测试打标签(可选,用tag筛选场景)
在你的exs测试文件里,给需要单独调试的测试加上指定标签:
@tag :external test "需要调试的外部测试逻辑" do # 测试代码 end
2. 修正launch.json的参数配置
把原来合并的参数拆成独立项,每个命令行参数单独占一个数组元素:
{ "version": "0.2.0", "configurations": [ { "type": "mix_task", "name": "mix test", "request": "launch", "task": "test", "args": ["--trace", "--only", ":external"], "projectDir": "${workspaceRoot}" } ] }
3. 更直接的替代方案(无需打标签)
如果不想修改测试代码,也可以直接指定测试文件和行号来单独运行,VSCode大纲视图里能直接看到测试的行号,定位很方便:
{ "version": "0.2.0", "configurations": [ { "type": "mix_task", "name": "mix test", "request": "launch", "task": "test", "args": ["test/your_test_file.exs:42", "--trace"], "projectDir": "${workspaceRoot}" } ] }
把示例里的42替换成你要调试的测试对应的行号即可。
验证方法
配置完成后启动调试,mix test会只运行你指定的标签测试或指定行的测试,不会再报未知选项错误,同时其他测试依然能在大纲视图里正常显示定位。
内容的提问来源于stack exchange,提问作者Chen Yu
相关产品推荐
相关产品推荐

