Vscode-rust: لم يتم العثور على البضائع في "اختبار التشغيل"

تم إنشاؤها على ٤ يوليو ٢٠١٩  ·  4تعليقات  ·  مصدر: rust-lang/vscode-rust

انا استخدم:
rls: 1.37.0 (124483d 2019-07-01)
rls-vscode: 0.6.1
كود VS: 1.36.0-insider
نظام التشغيل: Linux 4.18.0-22-generic #23~18.04.1-Ubuntu (Ubuntu 18.04 LTS) (باستخدام vscode remote ، نظام التشغيل المحلي: 18.6.0 Darwin (macOS Mojave 10.14.5))
أواجه المسار المطلق الكامل في rust-client.rlsPath و rust-client.rustupPath .

عند استخدام ميزة Run Test ، لا يمكن للمحطة العثور على البضائع. من المحتمل أن يكون مرتبطًا بـ $ PATH المستخدم بواسطة rls / rls-vscode.

> Executing task: cargo test -- --nocapture <test_name> <

/bin/bash: cargo: command not found
The terminal process terminated with exit code: 127

بينما يمكنني استخدام محطة VSCode المعاد استخدامها للقيام بنفس الأمر دون أخطاء.

التعليق الأكثر فائدة

لقد وجدت مشكلة أخرى.

لقد قمت بضبط إعداد vscode.json مع هذا الخيار

    "terminal.integrated.inheritEnv": false,  // delete it or set to `true`

حذفه أو التعيين على true سيحل هذا بدون تغيير task.js

ال 4 كومينتر

يبدو أن المشكلة من VSCode Insider ، التحديث الأخير يصلح هذه المشكلة.

لدي نفس المشكلة.

vscode 1.43.0 78a4c91400152c0f27ba4d363eb56d2835f9903a
الصدأ vscode (rls) 0.7.0
rls 1.41.0 (8f1c275 2019-12-10)
البضائع 1.41.0 (626f0f40e 2019-12-03)
نظام التشغيل: Darwin Kernel Version 19.3.0

> Executing task: cargo test -- --nocapture test_2 <
zsh:1: command not found: cargo

لقد حللت هذه المشكلة.

من الواضح أن $PATH خطأ.

vi ~/.vscode/extensions/rust-lang.rust-0.7.0/out/src/tasks.js

أضف source $HOME/.cargo/env; في cmdLine

function createShellExecution(execution) {
    const { binary, command, args, cwd, env } = execution;
    // const cmdLine = `${command || binary} ${args.join(' ')}`;
    const cmdLine = `source $HOME/.cargo/env; ${command || binary} ${args.join(' ')}`;
    return new vscode_1.ShellExecution(cmdLine, { cwd, env });
}

لكنني أعتقد أنه سيكون هناك حل أفضل من حلّي. ربما تغير خيارات env في vscode.ShellExecution() ؟

لقد وجدت مشكلة أخرى.

لقد قمت بضبط إعداد vscode.json مع هذا الخيار

    "terminal.integrated.inheritEnv": false,  // delete it or set to `true`

حذفه أو التعيين على true سيحل هذا بدون تغيير task.js

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات