2

在 Visual Studio Code 中,我对 3 个“上下文”菜单项感到非常困惑: Run Tests in ContextDebug Tests in ContextRun .NET Core Test in context他们Context在期待什么?

在此处输入图像描述

据我了解,TestContext将通过 初始化.runsettings,但我永远无法从 VS 代码传递runsettings调试/运行测试。Context

    [ClassInitialize]
    public static new void ClassInitialize(TestContext testContext)
    {
        //testContext doesn't get setting from `.runsettings`
        ...
        BaseTest.ClassInitialize(testContext);
    }

我相信以下Debug Test内容与Debug Tests in Context? 因为跟随Run Test可以加载runsettings,但Debug Test不起作用。

在此处输入图像描述

以上Run Test使用以下设置:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <RunSettingsFilePath>$(MSBuildProjectDirectory)\example.runsettings</RunSettingsFilePath>
  </PropertyGroup>
  ...
</Project>

我的测试在 Visual Studio 2019 中运行良好,但在加载时卡在 VS Code 中.runsettings

更多细节:

这是我的文件夹结构:

在此处输入图像描述

这是 的内容workspace.code-workspace,并且dotnet-test-explorer可以很好地加载所有测试:

{
    "folders": [
        {
            "path": ".."
        }
    ],
    "settings": {
        "dotnet-test-explorer.testArguments": "--settings c:/src/pat-oas/.runsettings",
        "dotnet-test-explorer.testProjectPath": "./tests/Pat.UITests.Itrds/Pat.UITests.Itrds.csproj"
    }
}
4

1 回答 1

2

在上下文中运行或调试测试是 Visual Studio 的一项功能,可让您从光标所在的位置运行测试。它将运行从光标所在位置向上的第一个测试,或文件中的所有测试。

对于 vscode,开始查找测试的上下文是您右键单击的位置。它只是比向上滚动到 codelens 或在扩展测试运行器中查找测试更容易。

runsettings是一个omnisharp 功能,您必须将文件路径设置在omnisharp.testRunSettings. 这是相关的公关https://github.com/OmniSharp/omnisharp-vscode/pull/3573

.Net Core run test in context可能是由您使用的扩展测试运行器贡献的。

您可以在此处查看此答案中的图表https://stackoverflow.com/a/42881612

于 2021-03-22T01:56:17.927 回答