我正在尝试使用xUnit2和自动修复在F#中编写一些单元测试,但我遇到了一个问题。我有一个带有自定义属性的理论,该理论继承自内联自动数据,测试资源管理器一直告诉我没有找到测试。如果我将“理论”属性替换为“事实”属性,它仍然不起作用,但是如果我删除自定义 InlineData 属性,则会发现测试。测试是用 F# 编写的,但在另一个项目的 C# 中是用 C# 编写的。
我发现了这个StackOverflow问题,看起来很相似,但它无助于解决我的问题:F#UnitTest项目中的AutoFixture没有在测试资源管理器中显示单元测试
以下是单元测试声明:
[<Theory>]
[<SyntaxTreeInlineAutoData("Class/SingleClass.cs", 1)>]
[<SyntaxTreeInlineAutoData("Class/MultipleClass.cs", 2)>]
[<SyntaxTreeInlineAutoData("Class/NestedClass.cs", 2)>]
let ``Inspect_WhenVariousContexts_WithSuccess`` (count, tree : SyntaxTree) =
以下是属性声明:
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class SyntaxTreeInlineAutoDataAttribute : InlineAutoDataAttribute
{
#region Constructors
public SyntaxTreeInlineAutoDataAttribute(string sourceFile, params object[] values)
: base(new SyntaxTreeAutoDataAttribute(sourceFile), values)
{
}
#endregion
}
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class SyntaxTreeAutoDataAttribute : AutoDataAttribute
{
#region Constructors
public SyntaxTreeAutoDataAttribute() : this(null)
{
}
public SyntaxTreeAutoDataAttribute(string sourceFile)
: base(new Fixture().Customize(new SyntaxTreeCustomization(sourceFile)))
{
}
#endregion
}
[编辑]
该项目是C#项目的一个端口。单元测试可以很好地使用自定义属性。这个错误只发生在用F#编写的测试中。
一切都已安装:xUnit2、xUnit.runners。visualstudio和AutoFixture。
谢谢你的帮助。
我可以复制这个问题,至少在我的报告中,问题是版本冲突。大多数VisualStudio测试运行程序不会告诉您这一点,但是如果您尝试使用命令行运行程序运行单元测试,您将看到报告的实际错误。
在我的repro中,我通过添加以下<code>应用程序来解决问题。将文件配置到我的F#项目:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="xunit.core" publicKeyToken="8d05b1bb7a6fdb6c" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.0.3179" newVersion="2.1.0.3179" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
我安装了Visual Studio 2012项目和以下NuGet软件包: 使用Moq进行自动模拟的自动夹具 使用XUNIT.NET数据理论自动安装 自动夹具 最小数量 xunit.net:扩展 xunit.net:Runners xunit.net
我更新了我的 Visual Studio 社区 2015(更新 3),它根本没有显示我的项目的单元测试!我试图重新安装VS,它没有改变任何东西,它还向我们显示消息“连接的服务包失败”(我不知道它是什么)。而且我无法找到如何从他们愚蠢的网站上下载旧版本的Visual Studio。我在他们的社区问了这个问题,没有人回答。帮帮我!没有测试,我就无法工作!!!
当我选择“Package Explorer”选项卡时,我会得到一个巨大的空白空间,其中只有10个项目的顶部显示出来,而不是像它应该的那样出现在窗格的左侧,而是出现在右侧。很奇怪。如果我点击它,我会看到一个“problem curveed”弹出框,上面写着“一个错误已经发生。有关更多详细信息,请参阅错误日志。Could not initialize class org.container.direc
我目前正在开发一个解决方案,该解决方案目前有32个UnitTests。我一直在和resharper测试跑步者一起工作--它工作得很好。所有测试都在运行,所有测试都显示了正确的测试结果。 但是,在使用Visual Studio测试资源管理器时,测试不会运行。 Test Explorer将显示所有单元测试,但是一旦单击“Run all”,所有测试都将变灰,并且不显示测试运行的结果: 所有测试类都是公共
我正在使用VS2015更新3,突然测试资源管理器(用于MSTest)没有显示任何内容,它只是空的。 我没有安装任何与单元测试相关的扩展,没有NUnit的东西,没有Resharper等。显然,解决方案已经编译完毕。所有带有单元测试的解决方案都是一样的,它们都曾经在测试资源管理器中显示测试,但突然间它们都是空的。 什么不起作用: 重启 重启VS 2015 Devenv.exe /ResetSettin
在VsCode中,如果我创建/删除/更改文件,文件资源管理器不会相应地更新。直到几周前,它还工作得很好,但突然它停止了,只有在我手动点击刷新按钮时才会更新。为了更好地解释这个问题,我在youtube上上传了一段20秒的视频。 这是我的VsCode版本信息: 我在macoS Big Sur 11.4(20F71)上,VsCode在我的git根存储库中打开。 任何帮助都很感激!!