首页 > 解决方案 > .net core xunit 测试项目中 Autofixture 的 AutoData 属性

问题描述

我可以AutoData在 .net core 2.2 xunit 测试项目中使用吗? AutoFixture.Xunit针对 .NET Framework 4.5.2,我无法使用它。也许还有其他适用于 .net 核心的 NuGet 包?

标签: .net-corexunitautofixture

解决方案


如果您查看 nuget.org 上的AutoFixture.Xunit ,您可能会注意到以下内容:

通过利用 xUnit.net 的数据理论特性,这个扩展将 AutoFixture 变成了一个用于编写单元测试的声明性框架。在许多方面,它变成了一种单元测试 DSL(领域特定语言)。对于 xUnit.net 2,请使用 AutoFixture.Xunit2 NuGet 包。

(我的重点。)

此外,如果您展开Dependencies部分,您会注意到包的依赖约束:

AutoFixture (>= 4.6.0)
xunit (>= 1.8.0.1549 && < 2.0.0)
xunit.extensions (>= 1.8.0.1549 && < 2.0.0)

请特别注意,对xunit的约束是< 2.0.0. 换句话说,它只适用于 xunit 1.8.0.1549 到 1.9.2(我相信这是低于 2.0 的最新版本)。

如果您想使用 xUnit.net 2.0 或更高版本,您应该按照文档所述使用AutoFixture.Xunit2包。更新的版本也支持 .NET Core。


推荐阅读