使用xUnit

时间:2016-06-30 10:14:44

标签: c# xunit .net-core

我希望使用netstandard1.6库的测试框架。我试图关注并编辑Getting started with xUnit.net (.NET Core / ASP.NET Core)但没有成功。使用我的project.json文件在VS 2015 Update 3 RTM上使用带有dotnetcore lib的xUnit教程来重现错误。

project.json:

{
  "version": "1.0.0-*",
  "testRunner": "xunit",
  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "xunit": "2.2.0-beta2-build3300",
    "dotnet-test-xunit": "2.2.0-preview2-build1029"
  },
  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  },
  "runtimes": {
    "win10-arm": {},
    "win10-arm-aot": {},
    "win10-x86": {},
    "win10-x86-aot": {},
    "win10-x64": {},
    "win10-x64-aot": {}
  }
}

错误:

Severity    Code    Description
Error       NU1002  The dependency dotnet-test-xunit 2.2.0-preview2-build1029 does not support framework .NETStandard,Version=v1.0

我可以降级到dotnet-test-xunit 2.2.0-preview2-build1029支持的.netstandard版本吗?是否有任何已知的工作可以使用xUnit?

由于我是一个新的project.json和dotnetcore,我可能会错过一些有用的东西。

5 个答案:

答案 0 :(得分:8)

这对我有用。现有的xunit版本似乎还不支持netstandard 1.6库。尝试将项目json更改为xunit site中提供的内容。这也假设您创建了一个.net核心库项目

{
  "version": "1.0.0-*",
  "testRunner": "xunit",
  "dependencies": {
    "xunit": "2.2.0-beta2-build3300",
    "dotnet-test-xunit": "2.2.0-preview2-build1029"
  },
  "frameworks": {
    "netcoreapp1.0": {
       "dependencies": {
          "Microsoft.NETCore.App": {
             "type": "platform",
             "version": "1.0.0"
           }
         }
      }
   }
}

答案 1 :(得分:3)

您可以导入 netcoreapp1.0 TFM,以说服工具依赖性与目标框架兼容:

{ 
  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "xunit": "2.2.0-beta4-build3444",
    "dotnet-test-xunit": "2.2.0-preview2-build1029" 
  },
  "frameworks": {
    "netstandard1.6": {
      "imports": [ "netcoreapp1.0" ]
    }
  }
}

您可以在下面链接的NuGet文档中找到目标框架标记(TFM)表,包括已弃用的框架表,其中包含 dnxcore50 (替换为 netcoreapp1.0 ):

https://docs.nuget.org/ndocs/schema/target-frameworks

答案 2 :(得分:1)

我建议使用以下版本(这与asp.net核心存储库中的Logging相同:

"dotnet-test-xunit": "1.0.0-*",
"xunit": "2.1.0"

答案 3 :(得分:0)

  1. 检查xunit依赖项的可用版本。我认为2.2.0已经是最终版。

  2. xunit项目需要是netcoreapp1.0而不是netstandard。

  3. 请参阅他们的网页了解详情。

答案 4 :(得分:-1)

.NET CLI工具(dotnet)支持创建测试项目:

testproj $ dotnet new -t xunittest
Created new C# project in /home/bartonjs/dotnet/testproj.
testproj $ cat project.json

产地:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable"
  },
  "dependencies": {
    "System.Runtime.Serialization.Primitives": "4.1.1",
    "xunit": "2.1.0",
    "dotnet-test-xunit": "1.0.0-rc2-192208-24"
  },
  "testRunner": "xunit",
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        }
      },
      "imports": [
        "dotnet5.4",
        "portable-net451+win8"
      ]
    }
  }
}

这些版本可能会更好地取得成功。