【问题标题】:create unit tests for .net 6.0为 .net 6.0 创建单元测试
【发布时间】:2022-01-30 21:21:21
【问题描述】:

我创建了一个 .Net 6 类库,现在我正在尝试创建一个测试项目。
.net 6 测试项目不可用。网上找了资料用.Net Framework或者.Net core来测试。

我创建了一个 .Net Framework 4.8 测试项目并引用了我的类库。

我收到编译器错误:

项目“..\CircularList\CircularList.csproj”以“net6.0”为目标。它不能被以 '.NETFramework,Version=v4.8' 为目标的项目引用。单元测试

那我该如何进行单元测试呢?有没有办法从 .Net Framework 4.8 定位到 .Net 6.0?

【问题讨论】:

  • 你试过“xunit 测试项目”或“nunit 测试项目”模板吗?两者都在我的安装中提供 .NET 6;并且不:您不能在 .NET 6 和 .NET Framework 4.8 之间进行交叉引用(在任一方向上)
  • 嗯 - .NET 4.8 是“旧的”、遗留/完整/仅限 Windows 的 .NET 框架 - .NET 6 是新的,基于 .NET Core 的跨平台框架 - 它们非常不同,您不能混合使用它们。但是在 VS 中应该肯定有 .NET Core 的单元测试项目 - 搜索“MSTest Test Project” - 其中明确指出 一个包含可以在 .NET Core 上运行的单元测试的项目。 .. - 这确实支持.NET 6
  • 如果您使用的是 Visual Studios,您可能需要更新到 2022 以简化此操作。我希望该版本包含您轻松创建 .net 6 项目和测试项目所需的一切。您需要一个 .net 6 测试项目。
  • @NathanCooper 我使用的是 2022 版,最新版本。
  • 你点击了旧的 MSTest 吗?那个说.NET Framework的?改为单击 XUnit,它将为您提供更现代的框架选择。

标签: c# .net unit-testing .net-framework-4.8


【解决方案1】:

我想这一定是答案。如果要使用测试 .net6 库,请不要使用项目模板“单元测试项目 (.NET Framework)”。

在项目创建向导中使用更新的模板。有较新的 MSTest,但也可以利用更好的模板,例如 xUnit 模板。

【讨论】:

    【解决方案2】:

    我创建了一个 NET 6.0 类库并收到了相同的消息。

    我进入属性,只是为了仔细检查我的项目和我的测试项目是否设置相同,并注意到我的库中没有设置目标操作系统。

    它在我的项目中,但不在我的类库中。

    一旦我将类库“目标操作系统”更改为 windows,与我的项目相同,错误消息就消失了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-27
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多