使用 xUnit 引用将项目部署为 NuGet 包

tim*_*t90 5 c# xunit nuget

我有一个包含一些类的库,我在几个单元测试项目中需要这些类。该库应作为 NuGet 包部署在我的私有存储库中。我已经在那里部署了一些 NuGet 包,所以我知道我必须做什么。

但是:在这个库中,我需要一个对 xUnit 的引用。一旦我添加了这个引用,execute 时就不会再创建 .nupkg 文件了dotnet pack

另一个有趣的效果是,一旦我添加 xUnit,项目图标就会变成单元测试图标:

在此处输入图片说明

重现步骤:

  1. 创建类库

  2. 添加对 xUnit NuGet 包的引用

  3. 右键单击项目,然后单击打包

预期行为:./bin/Debug 中应该有一个 .nupkg 文件

实际行为:没有这样的文件。

tim*_*t90 5

根据https://github.com/dotnet/cli/issues/7539,默认情况下,某些项目似乎“不可打包”。您必须通过将以下几行添加到 .csproj 文件来手动启用此功能:

<PropertyGroup>
  <IsPackable>true</IsPackable>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

之后,将创建 .nupkg 文件。


Paw*_*och 1

另一种选择是创建类库项目,但不添加完整的xunit包,只是: xunit.abstractions这样xunit.assertVS 不会将其检测为单元测试项目,但您仍然可以放置一些通用代码。

在此输入图像描述