【问题标题】:MSTest unit test not working in VS Code: VS namespace doesn't exist?MSTest 单元测试在 VS Code 中不起作用:VS 命名空间不存在?
【发布时间】:2021-02-04 00:15:57
【问题描述】:

我正在尝试在 Visual Studio Code 中编写一个 .NET Core 3.1 控制台应用程序,当我尝试运行我为应用程序的一部分所做的 MSTest 单元测试时,我收到以下错误: error CS0234: The type or namespace name 'VisualStudio' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

我按照this Microsoft tutorial 中的说明进行操作。

查看an older question here 暗示我可能无法在 VS Code 中运行那种单元测试:

命名空间 Microsoft.VisualStudio... 在不属于 Visual Studio 标准安装的程序集中定义。仅当您安装了 Visual Studio SDK 时才可用。

我尝试在两台不同的计算机(一台 Windows 机器和一台 Linux 机器)上运行测试,并尝试将项目更改为 .NET 5 而不是 .NET Core 3.1。两者都不起作用,如果这不会破坏任何东西,我想将其改回 .NET Core 3.1。

我有两个csprog 文件。项目名称已被编辑。

主项目的csprog文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
    <RootNamespace>redacted</RootNamespace>
  </PropertyGroup>

</Project>

以及测试项目的csprog文件:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
    <PackageReference Include="MSTest.TestAdapter" Version="2.1.0" />
    <PackageReference Include="MSTest.TestFramework" Version="2.1.0" />
    <PackageReference Include="coverlet.collector" Version="1.2.0" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\redacted.csproj" />
  </ItemGroup>

</Project>

是否可以在不安装 Visual Studio 本身的情况下安装 Visual Studio SDK?我试图尽可能使用 VS Code,而不是完整的 VS。如果是这样,我该怎么做,因为微软网站没有帮助?如果没有,是否有另一种编写单元测试的方法?我已经接受重写单元测试可能是不可避免的,但理想情况下我不想重写它们。

【问题讨论】:

  • 请分享您的csproj

标签: c# unit-testing .net-core visual-studio-code mstest


【解决方案1】:

终于想通了。我需要创建一个解决方案文件,将测试项目添加到解决方案中,并在 VS Code 中打开解决方案(不仅仅是文件夹)。最后一部分是我遇到的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    相关资源
    最近更新 更多