Vscode-rust: Cargaison non trouvée dans « Exécuter le test »

Créé le 4 juil. 2019  ·  4Commentaires  ·  Source: rust-lang/vscode-rust

J'utilise:
rls : 1.37.0 (124483d 2019-07-01)
rls-vscode : 0.6.1
Code VS : 1.36.0-insider
Système d'exploitation : Linux 4.18.0-22-generic #23~18.04.1-Ubuntu (Ubuntu 18.04 LTS) (en utilisant vscode distant, système d'exploitation local : 18.6.0 Darwin (macOS Mojave 10.14.5))
J'ai le chemin absolu complet dans rust-client.rlsPath et rust-client.rustupPath .

Lors de l'utilisation de la fonction Run Test , le terminal ne peut pas trouver de fret. C'est probablement lié au $PATH utilisé par rls/rls-vscode.

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

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

Alors que je peux utiliser le terminal VSCode réutilisé pour faire la même commande sans erreur.

Commentaire le plus utile

J'ai trouvé un autre problème.

J'ai défini vscode setting.json avec cette option

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

supprimez-le ou définissez-le sur true résoudra ce problème sans changer task.js

Tous les 4 commentaires

On dirait que c'est le problème de l'initié VSCode, une mise à jour récente résout ce problème.

J'ai le même problème.

vscode 1.43.0 78a4c91400152c0f27ba4d363eb56d2835f9903a
vscode rouille(rls) 0.7.0
1.41.0 (8f1c275 2019-12-10)
cargaison 1.41.0 (626f0f40e 2019-12-03)
Système d'exploitation : Darwin Kernel Version 19.3.0

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

J'ai résolu ce problème.

Il est évident que $PATH est faux.

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

ajouter source $HOME/.cargo/env; dans 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 });
}

Mais je pense qu'il y aura une meilleure solution que la mienne. Peut-être changer les options env dans vscode.ShellExecution() ?

J'ai trouvé un autre problème.

J'ai défini vscode setting.json avec cette option

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

supprimez-le ou définissez-le sur true résoudra ce problème sans changer task.js

Cette page vous a été utile?
0 / 5 - 0 notes