如何在 Rider 中进行 xUnit 测试?我收到错误 CS0246
Posted
技术标签:
【中文标题】如何在 Rider 中进行 xUnit 测试?我收到错误 CS0246【英文标题】:How to xUnit-Test in Rider? I'm getting error CS0246 【发布时间】:2018-06-21 18:26:35 【问题描述】:我是 C# 新手,对 C# 中的单元测试更是陌生。现在我想向应用程序添加单元测试,但我似乎无法在 JetBrains Rider 中完成:
除了我的 WPF 应用程序项目之外,我还在我的解决方案中创建了一个新的“单元测试项目”。 Rider 安装 xunit
、xunit.abstractions
、xunit.assert
、xunit.core
、xunit.extensibility.core
和 xunit.extensibility.execution
。它还创建了一个Tests.cs
类,其中包含一个带有[Fact]
属性的Test1()
方法。问题是:它立即显示'Fact' is not an attribute
。
在构建时,会产生两个 [CS0246] 错误:
Tests.cs(8, 10): [CS0246] Der Typ- oder Namespacename "Fact" wurde nicht gefunden (fehlt eine using-Direktive oder ein Assemblyverweise?)
Tests.cs(8, 10): [CS0246] Der Typ- oder Namespacename "FactAttribute" wurde nicht gefunden (fehlt eine using-Direktive oder ein Assemblyverweise?)
我不确定确切的英文翻译是什么,但我想你明白了。缺少哪些参考资料?这是 Rider 中的错误吗?
我也用 NUnit 尝试过,结果相似。
除此之外:我是否需要遵循任何文件结构或命名约定才能自动检测到测试?
【问题讨论】:
将using Xunit;
添加到您的 Test.cs 文件的顶部。如果您将鼠标悬停在出现错误的项目并查看建议的修复(即,单击出现的灯泡),Rider 应该能够为您执行此操作。
它已经自动出现了,但它没有帮助。 Rider 没有为错误提供任何建议。
Rider 版本?您的目标是什么 .Net 版本?您是否打开了 NuGet (Alt-7) 选项卡并确保恢复包?
在我自己看了几个小时后,我在此处发布问题 5 分钟后得到了解决方案:我的应用程序面向 .NET 4.0。我也正确地将 xUnit 框架设置为 4.0。尽管通过安装较旧的 xunit 包来尊重这一点,但该模板似乎与 .NET 4.0 并不完全兼容。在我的虚拟项目上将目标框架更改为 .NET 4.5 后,一切都很好。不幸的是,我现在不能在我的生产项目上这样做。为了使其在 4.0 中工作,我需要进行哪些更改? Rider 是 2018.1.2 版本
【参考方案1】:
- 确保已安装 NuGet 包“xunit”和“xunit.runer.visualstudio”(应该已自动安装),并且正如 Jonathon Chase 所提到的,将
using XUnit;
添加到所有包含测试的文件的顶部。李>
【讨论】:
应该是using Xunit;
正如 Jonathon 所说...,而不是 using XUnit;
以上是关于如何在 Rider 中进行 xUnit 测试?我收到错误 CS0246的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 XUnit 对 Web API 控制器进行单元测试
如何在需要 UserManager 但使用内存数据库的 XUnit 中测试方法