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

时间:2017-01-31 13:11:16

标签: .net visual-studio-code .net-core xunit.net

最新版本的VS Code已经提供了一种简单的方法来运行单Tyler Long's answer指向问题Debugging xunit tests in .NET Core and Visual Studio Code的单个测试。

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

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

{
  "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"
}

4 个答案:

答案 0 :(得分:14)

您可以通过在终端上执行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"
    }
  ]
}

这两个任务定义将Visual Studio代码中的运行构建任务运行测试任务命令分别链接到dotnet builddotnet test

答案 1 :(得分:8)

基于GraehamF的回答,tasks.json对于dotnet 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"
    }
]

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

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

答案 2 :(得分:1)

要在Visual Studio(VS)代码中运行测试,需要将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
            }
        }
    ]
}

保存后,在Mac上运行以下命令 Cmd - Shift - P Ctrl -在Linux和Windows的VS Code界面中- Shift - P ,然后键入运行测试任务,按Enter并选择{{ 1}}。

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

答案 3 :(得分:0)

类似于@Nate Barbettini的回答,但是对于.Net Core Standard 2.0(netcoreapp2.0)。

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "test",
            "command": "dotnet test path/to/test-project.csproj",
            "type": "shell",
            "group": "test",
            "presentation": {
                "reveal": "silent"
            },
            "problemMatcher": "$msCompile"
        }
    ]
}