如何在Visual Studio代码中运行所有测试

Mig*_*boa 44 .net xunit.net .net-core visual-studio-code

最新版本的VS Code已经提供了一种简单的运行单个测试的方法,如Tyler Long对.NET Core和Visual Studio Code中的调试xunit测试问题的回答所指出的那样.

但是,我正在寻找如何运行VS Code中的测试套件类中包含的所有测试(无需调试)?

我找到的唯一方法是添加到launch.json特定配置,如下所示,但我只能在调试中运行(我想在没有调试的情况下运行它):

{
  "name": ".NET Core Xunit tests",
  "type": "coreclr",
  "request": "launch",
  "preLaunchTask": "build",
  "program": "/usr/local/share/dotnet/dotnet",
  "args": ["test"],
  "cwd": "${workspaceRoot}/test/MyProject.Tests",
  "externalConsole": false,
  "stopAtEntry": false,
  "internalConsoleOptions": "openOnSessionStart"
}
Run Code Online (Sandbox Code Playgroud)

Jun*_*Han 47

有一种更简单的方法来运行所有测试:

  1. 安装.NET Core Test Explorer扩展
  2. 在VS Code中打开.NET Core测试项目,或者设置dotnet-test-explorer.testProjectPath为.NET Core测试项目的文件夹路径settings.json
  3. 在Explorer视图的.NET Test Explorer中,将自动检测所有测试,并且您可以运行所有测试或某个测试

.NET Test Explorer

  • settings.json在哪里?我在.vscode中添加了此文件,但是它不起作用。 (2认同)

Nat*_*ini 15

您可以通过dotnet test在终端上执行来运行项目中的所有测试.如果您已经打开终端,这很方便,但您也可以将它添加到Visual Studio代码中.

如果按Cmd- Shift- P打开命令调色板并键入"test",则可以运行" 运行测试任务"命令.默认情况下,这不会执行任何操作,但您可以编辑tasks.json以告诉它如何dotnet test为您运行:

tasks.json

{
  "version": "0.1.0",
  "command": "dotnet",
  "isShellCommand": true,
  "args": [],
  "tasks": [
    {
      "taskName": "build",
      "args": [ ],
      "isBuildCommand": true,
      "showOutput": "silent",
      "problemMatcher": "$msCompile"
    },
    {
      "taskName": "test",
      "args": [ ],
      "isTestCommand": true,
      "showOutput": "always",
      "problemMatcher": "$msCompile"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这两个任务定义将分别将Visual Studio Code中的Run Build TaskRun Test Task命令链接到dotnet builddotnet test.

  • 这似乎在 VS Code v 1.14 中发生了变化。 (3认同)

小智 10

基于GraehamF的答案,tasks.jsondotnet 2.0 所需的配置是不同的.

{
"version": "2.0.0",
"tasks": [
    {
        ...
    },
    {
        "label": "test",
        "command": "dotnet",
        "type": "shell",
        "group": "test",
        "args": [
            "test",
            "${workspaceFolder}/testprojectfolder/testprojectname.csproj"
        ],
        "presentation": {
            "reveal": "silent"
        },
        "problemMatcher": "$msCompile"
    }
]
Run Code Online (Sandbox Code Playgroud)

我发现当安装Visual Studio和VS Code时,将csproj引用放在命令属性中(如GraehamF的答案)导致Visual Studio被打开而不是在VS Code中运行测试.

(我会把它放在评论中,但我没有足够的声望点.)


Joh*_*edy 5

要在 Visual Studio (VS) Code 中运行测试,您需要向目录中添加一个tasks.json文件.vscode(如果您还没有)。然后按如下方式配置您的测试任务:

{
    "version": "2.0.0",
    "tasks": [
        {
            ... // Other tasks
        },
        {
            "label": "test",
            "command": "dotnet",
            "type": "shell",
            "args": [
                "test",
                "${workspaceFolder}/TestProjectName/TestProjectName.csproj"
            ],
            "group": "test",
            "problemMatcher": "$msCompile",
            "presentation": {
                "echo": true,
                "reveal": "always",
                "focus": false,
                "panel": "shared",
                "showReuseMessage": true,
                "clear": false
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

当你有救了,运行以下命令Cmd- Shift- PMac或Ctrl- Shift-P在VS代码界面在Linux和Windows,然后键入运行测试任务,按Enter选择test

上述配置应适用于 2020 年 4 月(1.41 版)最新的 Insider 和 Stable 版本的 VS Code。