【发布时间】: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 版本
标签: c# .net unit-testing xunit rider